Revature Panel Interview Questions

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

What is the method signature of the doGet method of the HttpServlet class?

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { }

What is Java Persistence API? JPA

Java Persistence API (JPA) provides specification for managing the relational data in applications.JPA specifications is defined with annotations in javax.persistence package. Using JPA annotation helps us in writing implementation independent code.

When would a server send you a 502 status code?

Bad Gateway

When would a server send you a 400 status code?

Bad Request

Name some common RDBMS platforms/vendors

PostgreSQL, Oracle Database XE, MySQL, SQL Server Express, MariaDB, Firebird, and more.

List the different ready states of the XMLHttpRequest object

Unsent (0), Opened (1), Headers_Recieved (2), Loading (3), Done (4)

Be able to determine what the monitor is for a synchronized method/block.

a monitor is a synchronization construct that allows threads to have both mutual exclusion and the ability to wait (block) for a certain condition to become false. ... A monitor consists of a mutex (lock) object and condition variables.

Name a few key methods on the Semaphore class in Java.

acquire() is called before accessing the resource to acquire the lock. When the thread is done with the resource it must release() to release the lock.

What file formats does Spring Boot support for configuration?

application.properties, YAML, environment variables

What are some methods on the function prototype?

apply(), bind(), toString(), and apply(). toString() prints the string representation of the function. bind() creates a new function and sets its this property to the incoming argument. apply() calls a function and sets the this property. ^^ unsure those look like obj default methods website to the right lists:hasOwnProperty() - Returns a boolean indicating whether an object contains the specified property as a direct property of that object and not inherited through the prototype chain.isPrototypeOf() - Returns a boolean indication whether the specified object is in the prototype chain of the object this method is called upon.propertyIsEnumerable() - Returns a boolean that indicates whether the specified property is enumerable or not.toLocaleString() - Returns string in local format.toString() - Returns string.valueOf - Returns the primitive value of the specified object.

What are some factory methods exposed by the Executors class?

callable(Runnable task) returns a callable object that when called runs the given task and returns null.defaultThreadFactory() returns a default thread factory used to create new threads.newCachedThreadPool() creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available.

What are the properties of the metadata object passed to the @Component decorator?

changeDetection, viewProviders, modeuleId, templateUrl, template, styleUrls, styles, animations, encapsulation, interpolation, entryComponents, preserveWhitespace

What is CodeBuild?

compiles source code, runs tests, and produces software packages that are ready to deployCompiler for codepipeline basically. Continuous Integration.

What are some built-in functions (methods on the global object)?

confirm() - dialog user must respond toalert() - display alert boxfind() - searches for string in console

What is the purpose of the RequestDispatcher in Java servlets?

provides the facility of dispatching the request to another resource- It may be HTML, Servlet, or JSP. - Can be used to include the content of another resource- One of the way of servlet collaboration

When would a server send you a 401 status code?

Unauthorized

What is a composite key?

A primary key consisting of multiple columns, the combination of their values being used to determine uniqueness.

What is the difference between REST and RESTful?

"REST" is an architectural paradigm. "RESTful" describes using that paradigm. RESTful is just used as an adjective describing something that respects the REST constraints.

Explain how the guard and default operators work

&& operators on a return value provides us a guarding clause - IE return loggedIn && username would return username only if 'loggedin' is true|| default operator gives us a way to say return 'something' and if its not here return some default value ie return username || "user not found"

What is HATEOAS?

(Hypermedia as the Engine of Application State) The term "hypermedia" refers to any content that contains links to other forms of media such as images, movies, and text. REST architectural style lets us use the hypermedia links in the response contents. It allows the client can dynamically navigate to the appropriate resources by traversing the hypermedia links.

What is the difference between the * and .. wildcards in pointcut expressions?

* - A star in the pattern represents a wildcard(..) - For matching for parameter_pattern with zero or more arguments of any type

What is a AMI?

Amazon Machine Image thats used on an EC2 (amazon cloud computer) as a virtual machine of sorts. It Basically describes the OS environment and accompanying software that runs on EC2

Name some examples of IaaS you are familiar with.

Amazon Web Services (AWS) like EC2 and Google Compute Engine

What is the version of Hibernate that you feel comfortable with?

5.4 or the most recent.

What ports are associated with HTTP traffic?

80 and 8080 (8080 is generally used for development purposes, while 80 is used for production-ready purposes)

What are some advantages of Encapsulation

- Makes programs more flexible- Makes debugging and testing easier- makes code more reusable- protects an object from unwanted access by clients- allows access to a level without revealing the complex details below- reduces human error- simplifies maintenance- improves code understandability"Helps develop and maintain a big code base"

What are some advantages of Abstraction

- Reduces complexity- Avoides code duplication an increases reusability- Helps increase security of an application or program as only important details are provided to the user. "Helps develop and maintain a big code base"

What kinds of things can be transmitted over HTTP?

"All the things"(anything that can be translated into bytes) - Wezley Multimedia things? (images, text, video, audio etc.)

What are best practices to follow in hibernate?

- Always check the primary key field access, if it's generated at the database layer then you should not have a setter for this.-By default hibernate set the field values directly, without using setters. So if you want hibernate to use setters, then make sure proper access is defined as @Access(value=AccessType.PROPERTY)-If access type is property, make sure annotations are used with getter methods and not setter methods. Avoid mixing of using annotations on both filed and getter methods.-Use native sql query only when it can't be done using HQL, such as using database specific feature.-If you have to sort the collection, use ordered list rather than sorting it using Collection API.-Use named queries wisely, keep it at a single place for easy debugging. Use them for commonly used queries only. For entity specific query, you can keep them in the entity bean itself.- Avoid Many-to-Many relationships, it can be easily implemented using bidirectional One-to-Many and Many-to-One relationships.-For collections, try to use Lists, maps and sets. Avoid array because you don't get benefit of lazy loading.-Do not treat exceptions as recoverable, roll back the Transaction and close the Session. If you do not do this, Hibernate cannot guarantee that in-memory state accurately represents the persistent state.

What are some Docker daemon commands?

- Dockerd (https://docs.docker.com/engine/reference/commandline/dockerd/)- Docker build (which builds your docker image from a dockerfile)- Docker create (creates a container from your docker image)- Docker start (runs your docker container)- Use -d flag to run command in background (as a daemon)

Which design patterns are used in hibernate?

- Domain Model Pattern - An object model of the domain that incorporates beth behavior and data- Data Mapper - A layer of mappers that moves data between objects and a database while keeping them independent of each other and the mapper itself. -Proxy Pattern for lazy loading-Factory Pattern in Session Factory

What are some advantages of using hibernate over JDBC

- Hibernate removes a lot of boiler-plate code that comes with JDBC API, the code looks more cleaner and readable.- Hibernate supports inheritance, associations and collections. These features are not present with JDBC API.- Hibernate implicitly provides transaction management, in fact most of the queries can't be executed outside transaction. In JDBC API, we need to write code for transaction management using commit and rollback.-JDBC API throws SQLException that is a checked exception, so we need to write a lot of try-catch block code. Most of the times it's redundant in every JDBC call and used for transaction management. Hibernate wraps JDBC exceptions and throw JDBCException or HibernateException un-checked exception, so we don't need to write code to handle it. Hibernate built-in transaction management removes the usage of try-catch blocks.-Hibernate Query Language (HQL) is more object oriented and close to java programming language. For JDBC, we need to write native sql queries.

What are some advantages of using Inheritance

- code reusability- code readability- overriding of parent class methods"Allows you to reuse common logic and extract unique logic into separate classes"

What's the difference between a normal function declaration and an arrow function?

-4 ways to invoke normal function and 'this' keyword differs for each where with arrow function it is always the calling functions this...-Cant use the new keyword on arrow functions as a constructor for new instances -Normal function gets the arguments object which represents the calling parameters - arrow function has to declare incoming params-Need to declare return keyword in normal function to return anything - if you have one expression on arrow function it returns automatically-Normal functions dont work to use their methods in callbacks well but we can define a normal functions method to a arrow function and bind things correctly

What are some different types of aspect weaving?

-Compile-Time Weaving : The simplest approach of weaving is compile-time weaving. When we have both the source code of the aspect and the code that we are using aspects in, the AspectJ compiler will compile from source and produce a woven class files as output.-Post-Compile(Runtime?) Weaving: used to weave existing class files and JAR files. As with compile-time weaving, the aspects used for weaving may be in source or binary form, and may themselves be woven by aspects.-Load-Time Weaving: Load-time weaving is simply binary weaving deferred until the point that a class loader loads a class file and defines the class to the JVM.

What is the difference between Session .get() and .load() methods?

-Get returns null if object not found - can be slower since it returns fully initialized object-Load throws object not found if not avaliable and returns a proxy object so can be slightly faster

What are some important benefits of Hibernate?

-Hibernate eliminates all the boiler-plate code that comes with JDBC and takes care of managing resources, so we can focus on business logic.-Hibernate framework provides support for XML as well as JPA annotations, that makes our code implementation independent.-Hibernate provides a powerful query language (HQL) that is similar to SQL. However, HQL is fully object-oriented and understands concepts like inheritance, polymorphism and association.-Hibernate is easy to integrate with other Java EE frameworks, it's so popular that Spring Framework provides built-in support for integrating hibernate with Spring applications.

Are there any downsides of using AJAX?

-It increases design and developnment time-Complex-Less security-Search Engines cannot index AJAX pages-Browsers which disabled Javascript cannot use the application-Another server cannot display information within the AJAX

What are some rules of REst?

-REST is based on the resource or noun instead of action or verb based. It means that a URI of a REST API should always end with a noun. -HTTP verbs are used to identify the action. -A web application should be organized into resources like users and then uses HTTP verbs like - GET, PUT, POST, DELETE to modify those resources.-Always use plurals in URL-Send a proper HTTP code to indicate a success or error status.

What is the difference between the Session .save() and .persist() methods?

-Save has a return object (Serializable!!) and happens immediately (not at 'flush time'). Save will also put the id value for the new record into your object, allowing it to be available before a flush or commit happens.-Persist has void return and mayy not happen till flush at the end of session - can be faster on the application end for this reason since if you make multiple changes to the same resource it saves those changes and waits to persist till the end. Persist does not add the id value for the new record into your object, which will only be available after a flush or commit.

Describe the usage of the Thread#join method.

-The join method allows one thread to wait for the completion of another. Ex: t.join( ) causes the current thread to pause execution until t's thread terminates. Overloading join( ) will allow the user to specify a wait time.

What is a deployment descriptor?

A Web application deployment descriptor describes the classes, resources and configuration of the application and how the web server uses them to serve web requests

What is the difference between the Session .update() and .merge() methods?

-Update can only happen to something already saved (a detached object), attaches the persistent object to the object passed in- Throws exception if passed a transient object-Merge can be used on things that have been detached or have yet to be persisted basically, returns a persistent object- Merge takes a detached object and saves it onto a persistent object (something in the database)- Can take a transient object and save those changes onto a new persistent object- Does nothing if passed a persistent object

What are the values that can be specified for the hbm2ddl.auto property in the Hibernate configuration file?

-Validate: validate the schema, makes no changes to the database -Update: update the schema-Create: Creates the schema, destorying previous data-Create-drop: drop the schema when the SessionFactory is closed explicitly, typically when the application is stopped-None : does nothing with the schema, makes no changes to the database

What does the "this" keyword refer to?

-method: owner object-alone: global object-in function: global object-in strict function: undefinedin event: element that received event

List some array methods and explain how they work

.filter(), .map(), .join()

What is the proper way to create a thread in Java?

1. By implementing the Runnable interface and overriding the run() method. Then a thread object can be created and the start method called. 2. Extends Thread class. Create a thread by a new class that extends Thread class and create an instance of that class.Or Runnable r1 = new Task("task 1");ExecutorService pool = Executors.newFixedThreadPool(MAX_T); pool.execute(r1);

Explain how to configure Apache Tomcat to deploy our web applications.

1. Edit tomcat-users.xml. Add roles and users 2. Edit Maven's settings.xml and add tomcat server3. Run Server using "sh startup.sh"4. Create Maven Project and change packaging to WAR5. Add javax servlet as dependency 6. Configure pom.xml by adding build tags with tomcat and localhost server as plugins7. Create directory structure ./src/main/webapp/WEB-INF. Add index.html in webapp and web.xml in WEB-INF8. Configure web.xml. Add servlets and servlet mapping9. Create a package within com.revature called servlets and include a class named TestServlet and add doGet method10. Deploy tomcat using "mvn tomcat7:deploy" command.

What is the bean lifecycle

1. Instantiation - Bean constructor called2. Populate properties - Setter methods of bean properties are called (dependencies must be created prior to bean creation)3. BeanNameAware.setBeanName() - Set the name of the bean in the bean factory that created this bean.5. BeanFactoryAware.setBeanFactory() - Callback that supplies the owning factory to a bean instance.11. ApplicationContextAware.setApplicationContext() (only applicable when running in an application context) - Set the ApplicationContext that this object runs in.12. ServletContextAware.setServletContext() (only applicable when running in a web application context) - Set the ServletContext that this object runs in.13. postProcessBeforeInitialization methods of BeanPostProcessors - Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks.14. InitializingBean.afterPropertiesSet() - Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc. This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.15. a custom init-method definition - Custom bean initialization logic16. postProcessAfterInitialization methods of BeanPostProcessors - Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks17. At this point, the bean is ready for use by the application.18. At some point the container will begin to shut down. When this occurs the DisposableBean.destroy() method is invoked.19. a custom destroy-method will be invoked to clean up any custom configuration."so there are a lot of steps in the bean lifecycle: Fist instantiate, Populate your properties and set the Bean name and assign it to a factory owner. There are then several stages surrounding initialization: pre-initiliazation, initialization, custom init method and post initialization, after which the bean is ready to use. When the beans life is over there are two stages a DisposableBean.destroy and a cusotm destory method"

List the steps to sending an AJAX request

1. Make a XMLHttpRequest object: XMLHttpRequest request = new XMLHttpRequest()2. Use the object and call open method: request.open(method,url,async) 3. Use the object and call send method: request.send() ---used for get, for post use send(string) method

What built-in data structures does JavaScript provide?

1.) Object: typeof instance === "object". Special non-data but Structural type for any constructed object instance also used as data structures: new Object, new Array, new Set, new WeakMap, new WeakSet, new Date and almost everything make with new keyword. 2.) Function: a non-data structure, though it also answers for typeof operator: typeof instance === "function". This is merely a special shorthand for Functions, though every Function constructor is derived from Object constructor.

What version of Angular are you comfortable working with?

11 (secifically 11.2.4)

What does a 100-level status code generally convey?

1xx informational response - the request was received, continuing process Aka still working

What status code is expected in response to a preflight request?

200 : You should just send back the same status code for the CORS preflight OPTIONS request that you'd send back for any other OPTIONS request. The relevant specs don't require or recommend anything more than that.

What port is associated with HTTPS traffic?

443

List some decorators for Angular apps

@Component, @NgModule, @Pipe

List some Spring MVC annotations

@Controller: A Spring stereotype annotation that is put at the class level for a presentation-layer class whose methods expose web endpoints.@GetMapping: Used to expose a resource through a web endpoint specific to HTTP GET requests@PostMapping: Used to expose a resource through a web endpoint specific to HTTP POST requests@PutMapping: Used to expose a resource through a web endpoint specific to HTTP PUT requests@DeleteMapping: Used to expose a resource through a web endpoint specific to HTTP DELETE requests@PathVariable: Used to grab a variable that is a part of the URI path@RequestParam: Used to grab a variable that is defined as a query parameter within the URI@RequestBody: Used to grab a object from the body of the web request@ResponseBody: Used to indicate that the returned value of the controller method will be placed within the body of the web response@ResponseStatus: Used to indicate the HTTP response status code for a controller method @ExceptionHandler: Used to send custom responses back to the client when a controller method throws a specified exception @RestController: Used when creating RESTful APIs using Spring MVC An aggregate annotation that implies @Controller on the class level and @ResponseBody on each controller method

What is the difference between the @Entity and @Table annotations?

@Entity tells Hibernate that a class is an entity that will be mapped. @Table maps the class to a specific table with the provided name

What is the difference between the this and target pointcut designators?

@Pointcut("target(com.some.class)") (where target object is instance of of given type) -jdk based proxy@Pointcut("this(com.some.class)") (where bean reference is instance of given type) - cglib based proxy

What annotation is used to denote an application as a Spring Boot application? Where should this be placed?

@SpringBootApplication encapsulates:@Configuration, @EnableAutoConfiguration, and @ComponentScan annotations with their default attributes.

How can you configure a servlet using annotations?

@WebServlet is used for declaring a servlet class(still need to extend the HttpServlet class) and configuring mapping for it. Simplest way is: @WebServlet("/NameofServletHere") *Another Way is @WebServlet(name = "servletName"description = " description"urlPatterns = {"/ServletName"}and Another One : @WebServlet( urlPatterns { "/servletone" , "/servlettwo" , "servletthree"}

What are some JPA annotations that can be used to map Java classes to database tables?

@entity, @column, @table etc

How can you provide a scalar or literal value for injection into the property of a Spring bean?

@value allows us to provide a literal to a spring bean@Value("Cute Java")public void setAliasName(String aliasName) {this.aliasName = aliasName;}

Explain how a simple 3-stage pipeline works.

A 3-stage pipeline first sources the project (e.g. from Github), builds and tests is (e.g. with CodeBuild) and deploys it (e.g. to an Elastic Beanstalk instance)

What is a Dockerfile?

A Dockerfile is simply a text-based script of instructions that is used to create a container image

What are the lifecycle methods of a Java servlet?

A Java servlet has three Life Cycle Methods:init() - called by the servlet container to indicate the servlet instance is instantiated correctly and is about to be put in service.service() - invoked to inform the Servlet about the client requests. Uses ServletRequest object to collect the data requested by the client. Uses ServletResponse object to generate the output content.destroy() - runs only once during the lifetime of a Servlet, and signals the end of the Servlet instance. Performs tasks like closing a connection with the database, releasing allocated memory, and signals the garbage collector.

Why is it recommended to use a PreparedStatement over a Statement?

A PreparedStatement is a precompiled SQL statement. All the SQL code is already there and you just need to insert the needed data before committing it. You cannot insert more SQL code into the statement.

What are the scopes of a Spring bean? What is the default?

A Spring bean gets its scope either from the scope attribute on the <bean> tag in an XML configuration, or from using an @Scope annotation. A bean's scope can be:Singleton (default)- Container creates one instance of the bean- The bean is cached in memory- All requests for the bean will return a shared reference to the same beanPrototype- Creates a new bean instance for each container request--WebAware--Request- Bean is scoped to an HTTP web request- Only used in web applicationsSession- Bean is scoped to an HTTP web session- Only used in web applicationsApplication- Scopes a single bean definition to the lifecycle of a ServletContext- Only used in web applicationsWebsocket- Scopes a single bean definition to the lifecycle of a WebSocket- Only used in web applications

What is the difference between a Statement and PreparedStatement?

A Statement is a static SQL statement while a prepared statement is a precombiled SQL statement. Prepared Statement is safer because it prevents SQL injection by only allowing a user to set specific values and not inject entire SQL code into an SQL statement.

What is the difference between the BLOCKED and WAITING states?

A blocked thread is waiting on resources or a lock to resume execution while a waiting thread is waiting on a condition to be met by some other thread before resuming like a thread calling notify().

What are some differences between the Runnable and Callable interfaces?

A callable is very similar except it returns a result and can throw a checked exception. The Callable interface is a generic interface containing a single call() method - which returns a generic value

What is a cartesian product? How can you generate one using SQL?

A cartesian product is all the possible combinations between two sets of data. This is achieved through the cross join.

What is closure and when should you use it?

A closure is a function having access to the parent scope, even after the parent function has closed.The variable add is assigned to the return value of a self-invoking function. The self-invoking function only runs once. It sets the counter to zero (0), and returns a function expression. This way add becomes a function. The "wonderful" part is that it can access the counter in the parent scope. This is called a JavaScript closure. It makes it possible for a function to have "private" variables. The counter is protected by the scope of the anonymous function, and can only be changed using the add function.

What is a natural key?

A column that represents a natural value that has meaning beyond the context of the containing database and can be used to uniquely identify a row.

What is surrogate key?

A column that represents a value that only has meaning within the context of the containing database (i.e. an autogenerated number/string used for an ID).

What is a foreign key?

A column whose value represents the unique identifier (typically a primary key) that refers to records within either in another table, or the same.

What files make up a component? What is the "spec" file used for?

A componenet is made up of 4 files: HTML template, Typescript class, Styles template, and a spec file. The HTML template contains the HTML which is rendered on the page. The Typescript class defines teh behavor of the componenet. The Styles template contains the CSS for styling the page. The spec file is used for testing of the component.

What is multiplicity?

A concept that tells us the minimum and maximum number of times that two tables in our database can be related to each other. The minimums can be either 1 (the relationship is mandatory) or 0 (the relationship is optional). The maximums can be 0 (the relationship is forbidden), 1 (the relationship is only 1), or * (the relationship is many).

What is a Docker container?

A container is a runnable instance of an image

What is a dirty-read? What isolation level(s) resolve this phenonmenon?

A dirty read is the situation when a transaction reads a data that has not yet been committed. Read Committed, Repeatable Read, and Serializable resolve this phenonmenon.

What is the difference between a forward and a redirect?

A forward is performed internally by the application (servlet). The browser is unaware that it takes place so the URL stays the same. Any browser reload of the resulting page will simply repeat the original request, with the original URL.A redirect is a two step process, where the web application instructs the browser to fetch a second URL, which differs from the original. A browser reload of the second URL will not repeat the original request, but rather fetch the second URL.

What is the difference between a join point and a pointcut?

A joinpoint is a candidate point in the Program Execution of the application where an aspect can be plugged in. This point could be a method being called, an exception being thrown, or even a field being modified.A pointcut is a predicate that matches join points. A pointcut defines at what joinpoints, the associated Advice should be applied. Advice can be applied at any joinpoint supported by the AOP framework. Advice is associated with a pointcut expression and runs at any join point matched by the pointcut (for example, the execution of a method with a certain name).Matches to 0 or more joinpoints

Explain the concept of lexical scope

A lexical scope means that a variable defined outside a function can be accessible inside another defined after the variable declaration. But the opposite is not true

What is the synchronized keyword used for?

A method marked with the keyword synchronize becomes a synchronized block, allowing only one thread to execute at any given time

Describe the Richardson Maturity Model.

A model (developed by Leonard Richardson) that breaks down the principal elements of a REST approach into three steps. These introduce resources, http verbs, and hypermedia controls.-Lvl 0: The starting point for the model is using HTTP as a transport system for remote interactions, but without using any of the mechanisms of the web.-Lvl 1: The first step towards the Glory of Rest in the RMM is to introduce resources. So now rather than making all our requests to a singular service endpoint, we now start talking to individual resources.-Lvl 2: using the HTTP verbs as closely as possible to how they are used in HTTP itself.-Lvl 3: HATEOAS (Hypermedia As The Engine Of Application State). It addresses the question of how to get from a list of open slots to knowing what to do to book an appointment.

What is a monitor?

A monitor is something a thread can grab and hold, preventing all other threads from grabbing that same monitor and forcing them to wait until the monitor is released

What is a race condition?

A race condition is a condition of a program where its behavior depends on relative timing or interleaving of multiple threads or processes. It occurs when two or more threads attempt to access and override a non-thread-safe data source at the same time. The thread that accesses and overwrites the data last is the only one that has its execution saved in memory.

What is a relational database?

A relational database is a type of database that stores and provides access to data points that are related to one another. It is based on the relational model, an intuitive, straightforward way of representing data in tables.

What is a resource?

A resource in REST is a similar Object in Object Oriented Programming or is like an Entity in a Database. It's basically "whatever thing is accessed by the URL you supply".The URL is not a resource, it is a label that identifies the resource, it is, if you like, the name of the resource. The JSON is a representation of the resource.

What is a result set?

A result set is the output of a query and can be anywhere from 1 row and 1 column to many columns and many rows.

What is the difference between a scalar and an aggregate function?

A scalar function is used to produce a vlaue based on an individual value while an aggregate function is used to produce summarized results based upon some set of data.

What is a self-join? Provide an example of when you might use one

A self join is when a table joins itself. An example of using a self join is when you want to store posts, but also allow posts that are comments on a specific post. Instead of creating an entirely new table for the replies to posts, you just add a foreign key within the Post table that relates to a primary key in the same table.

What is a semaphore? Describe how they work.

A semaphore controls access to a shared resource through the use of a counter. If the counter is greater than zero, then access is allowed. If it is zero, then access is denied.

What is an Angular service?

A service can be any value, function or feature that an application needs, and is distinct from a component to increase the modularity of the application and the reuseablility of the service. Services are accessed by components through dependency injection through the constructor of the component.

What makes a "single page application" (SPA) different from a normal web page?

A single page application interacts with the user by dynamically rendering each component of the single page, instead of reloading a new page from the server with each request by the user.

What is a deadlock?

A situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process. Picture two trains approaching each other on a single track, neither can move past the other and they get stuck. A coding example would be the classic Dining Philosophers problem.

What is a pre-flight request?

A small request that is sent by the browser before the actual request. It contains information like which HTTP method is used, as well as if any custom HTTP headers are present. It gives the server a chance to examine what the actual request will look like before its made.

What is a subquery?

A subquery is a SQL query nested inside a larger query. Usally added within the WHERE clause of another SQL SELECT statement and combined with on of several keywords that act as boolean operators when used in with a subquery, that allow for power query creation. Inner query executes first before its parent query so that the results of an inner query can be passed to the outer query. Recommended to use joins over subquery.

What is a template?

A template is code that defines how to render a component's view by combining base HTML with Angular data binding and directives

When could a thread find itself in the BLOCKED state?

A thread could be BLOCKED when it is waiting for a lock

What is a thread?

A thread is a path of execution within a process, which can contain multiple threads. A thread is a unit of program execution that runs independently from other threads.

What is a thread pool?

A thread pool reuses previously created threads to execute current tasks and offers a solution to the problem of thread cycle overhead and resource thrashing.

What is a web server? Provide some common examples

A web server is software that can process the client request and send the response back to the client.Examples: Apache Tomcat, Apache Geronimo, Red Hat Wildfly, Eclipse Jetty, and Nginx.

What is an EventEmitter and when would you use one?

An EventEmitter is a way that a component can emit an event. You would use it when you want to change something in a child component and inform the parent component of the change. I didn't include an example cause it didn't ask for one.

What are the benefits of using AJAX?

AJAX improves the speed, performance and usability of a web application

What is AJAX? why do we use it?

AJAX is Asynchronous JavaScript And XML. AJAX is not a programming language.It uses a combination of a browser built-in XMLHttpRequest object, to request data from a web serverJavascript and HTML DOM, to display or use the dataWe use AJAX to make aysnchronous calls to a web server. It allows the client browser to avoid waiting for all data to arrive before allowing the user to act once more

What is AOP?

AOP stands for Aspect-Oriented Programming. AOP provides another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect.

Name some examples of PaaS you are familiar with.

AWS Elastic Beanstalk, Windows Azure, and Heroku

Define Abstraction

Abstraction can be thought of as a natural extension of Encapsulation, acheived in Java through the use of interfaces(100% abstraction) and abstract classes(variable abstraction). Applying abstraction means that each object should only expose a high-level mechanism for using it. This mechanism should hide internal implementation details and only reveal operations relevant for the other objects.

When would a server send you a 202 status code?

Accepted

What headers are expected in response to a preflight request?

Access-Control-Request-MethodAccess-Control-Request-HeadersOrigin

What is meant by Code on Demand?

According to this, servers can also provide executable code to the client. The examples of code on demand may include the compiled components such as Java applets and client-side scripts such as JavaScript.

Explain the term 'Addressing' with respect to RESTful web service.

Addressing refers to locating a resource or multiple resources lying on the server. It is analogous to locate a postal address of a person. Each resource in REST architecture is identified by its URI (Uniform Resource Identifier)

List the advantages and disadvantages of 'Statelessness'

Advantages:-As the server does not need to manage any session, deploying the services to any number of servers is possible, and so scalability will never be a problem-No states equals less complexity; no session (state) synchronize logic to handle at the server side-As the service calls (requests) can be cached by the underlying application, the statelessness constraint brings down the server's response time, that is, it improves performance with regard to response time-Seamless integration/implementation with HTTP protocols is possible as HTTP is itself a stateless protocolWeb services can treat each method request independentlyDisadvantages:-Web services need to get extra information in each request and then interpret to get the clients state in case the client interactions are to be taken care of

What is advice? List the types of advice supported by Spring AOP

Advice is the action taken by an aspect at a particular join-pointIt is optional to use @Pointcut instead, the pointcut expressions can be directly used inside the advice annotations as shown below.Before advice -@BeforeAround advice - @AroundAfter returning - @AfterReturningAfter throwing - @AfterThrowingAfter (finally) advice - @After

What are the advantages to using JWTs for authentication/authorization?

Allows for stateless sessions: the JWT can hold the necessary authentication informationPortable: A single token can be used with multiple backendsGood Performance: Reduces the network round trip timeDecoupled/Decentralized: The token can be generated anywhere. Authentication can happen on the resource server, or easily separated into its own server.

What is CloudWatch?

Amazon CloudWatch is a monitoring and management service that provides data and actionable insights for AWS, hybrid, and on-premises applications and infrastructure resources.

What does it mean for an operation to be safe? What HTTP methods are safe?

An HTTP method is safe if it doesn't alter the state of the server. In other words, a method is safe if it leads to a read-only operation. Several common HTTP methods are safe: GET , HEAD , or OPTIONS . All safe methods are also idempotent, but not all idempotent methods are safe.

What is meant by Layered System?

An application architecture needs to be composed of multiple layers. Each layer doesn't know any thing about any layer other than that of immediate layer and there can be lot of intermediate servers between client and the end server. Intermediary servers may improve system availability by enabling load-balancing and by providing shared caches.

What is the JoinPoint argument used for? What is a ProceedingJoinPoint? When is it used?

An around advice is a special advice that can control when and if a method (or other join point) is executed. This is true for around advices only, so they require an argument of type ProceedingJoinPoint, whereas other advices just use a plain JoinPoint.

What is an aspect?

An aspect is a modularization of a concern that cuts across multiple classes. Transaction management is a good example of a crosscutting concern in enterprise Java applications.-OR-An aspect is a common feature that's typically scattered across methods, classes, object hierarchies, or even entire object models. It is behavior that looks and smells like it should have structure, but you can't find a way to express this structure in code with traditional object-oriented techniques.

What are some strategies you can take to make a thread-safe singleton?

An eager singleton is implicitly thread-safe since it instantiates the single static instance on class load up. A lazy singleton isn't necessarily thread safe, since if two or more threads call getInstance at the same time more than one singleton instance can be created. // A lock must be obtained in case two or more threads call the same method. In this case we can use the synchronized keyword on the method, although this is a bit expensive.

What does it mean for an operation to be idempotent? What HTTP methods are idempotent?

An idempotent HTTP method is a HTTP method that can be called many times without different outcomes. It would not matter if the method is called only once, or ten times over.

What is a Docker image?

An image is a read-only template with instructions for creating a Docker container. Often, an image is based on another image, with some additional customization.

Describe the Executor interface.

An object that executes submitted Runnable tasks. Provides a way of decoupling tasks submission from the mechanics of how each task will be run including details of thread use, scheduling etc.Normally used instead of explicitly creating threads

Tell me about the Managed (Persistent) state

An object that is associated with the hibernate session is called as Persistent object. When the object is in persistent state, then it represent one row of the database and consists of an identifier value.

Tell me about the Transient state

An object which is not associated with hibernate session and does not represent a row in the database is considered as transient.An object that is created for the first time using the new() operator is in transient state. You have to use save, persist or saveOrUpdate methods to persist the transient object.

What is the latest released version of Angular?

Angular 11 was released November 11th, 202011.2.6, released March 17th 2021

What is the Angular CLI?

Angular CLI is the command line interface for creating and manipulating Angular projects from a command shell

What is Angular?

Angular is a framework used to build single page clieant applications using HTML/CSS and TypeScript, importing sets of TypeScript libraries into the apps

What is a Angular pipe?

Angular pipes are used for accepting an input value and then return a transformed value. They can take strings, numbers, currencies, etc. and transform the data to display it on the view, or to be parsed and used for a later function. There are built in pipes such as the UpperCasePipe, CurrencyPipe or LowerCasePipe, as well as developers can make custom pipes to translate values differently.

What are some features of the Angular framework?

Angular provides a highly optimized, single page web application. In a more technical approach, Angular provides two way data binding for component and view synchronization, as well as a CLI to create new features inside of your application, or create a new application all together.

How does routing work in Angular?

Angular routing is achieved by importing the AngularRoutingModule into the imports array in the AppModule. The AngularRoutingModule uses Routes and RoutingModule, where Routes is an array of components that represent the endpoints that can be displayed to the user, and the RoutingModule is within the imports and exports of the NgModulefor the AppRoutingModule, which can set the root component that is pulled from the Routes array.

What is continuous delivery?

Another devops practice, focuses on delivering any validated changes to the code base (updates, bug fixes, even new features) to users as quickly and safely as possibleCI and delivering built files (e.g. .jar, .war) to an internal staging environment

What is the primary IOC container in Spring?

ApplicationContext Interface represents the IoC container.The Spring container is responsible for instantiating, configuring and assembling objects known as beans, as well as managing their life cycles.

What is considered to be the most powerful type of advice? Why?

Around advice - @Around

What are arrays in JS? can you change their size?

Arrays in js are objects that have list-like properties; the elements in an array can be accessed with an integer (called an index). Since js arrays are not fixed, the size can be changed like this: arr.length = 0;

Explain Hibernate first level cache

As the name suggests, hibernate caches query data to make our application faster. Hibernate Cache can be very useful in gaining fast application performance if used correctly. Hibernate first level cache is associated with the Session object. Hibernate first level cache is enabled by default and there is no way to disable it. However hibernate provides methods through which we can delete selected objects from the cache or clear the cache completely.-This cache is the cache of objects to be persisted at flush time maintained by the session.

What is AspectJ? How is it enabled for use within a Spring application?

AspectJ is an aspect-oriented programming (AOP) extension created at PARC for the Java programming language. Spring uses AspectJ to make it easy for the developers to use Transaction Management, or applying security (using Spring Security) in your application.The @AspectJ style was introduced by the AspectJ project as part of the AspectJ 5 release. Spring interprets the same annotations as AspectJ 5, using a library supplied by AspectJ for pointcut parsing and matching.

What are examples of attribute directives?

Attribute directives are directives that manipulate the DOM by changing the behavior and the appearance. NgClass, NgForm, NgStyle and NgModel are examples of built in attribute directives

Are beans loaded eagerly or lazily within the ApplicationContext? How can you change this?

Beans are typically loaded eagerly within AC, and that's because it will help to recognize errors or bugs faster. Eagerly loaded things have no worries about missing them because of the immediacy. You can use the @Lazy annotation to lazily load beans however. (This goes on class definition!)

Can you prevent the execution of a join point when using before advice?

Before advice: Advice that executes before a join point, but which does not have the ability to prevent execution flow proceeding to the join point (unless it throws an exception).

What new features did ES6 introduce?

Better syntax for some existing stuff - classes/modulesMore functionality in standard library - new methods for strings/arrays, added promises, maps, sets etc (let and constant)Added some big entirely new features - generators, proxies, weakmaps etc ?const and let access keywords

What are the different scopes of variables in JS?

Block - declared within a block of code with let or constFunction - declared inside function with var, let or constGlobal - declared outside function or without a defining keyword (IE no let or var)

What are the data types in JS?

Boolean, BigInt,Undefined,Null, Number, String, Symbol(BUNS)

What is bubbling and capturing and what is the difference?

Bubbling and Capturing are two ways of event propagation in the HTML DOM. Event propagation is a way of defining the element order when an event occurs.Bubbling: the inner most element's event is handled first and then the outer. If we have <p> inside of <div>, then <p> is handled first then <div>Capturing: the outer most element's event is handled first then the inner: if we have <p> inside of <div>, then <div> is handled first then <p>

How are components registered to an Angular module?

By declaring the components within the declarations property of the NgModule decorator. Multiple components can be added, since the declarations property is an array.

How would I create a Docker image from a Dockerfile?

By using the "docker build -t dockerfile" from the app directory that has the DockerFile

How would I create a Docker container from a Docker image?

By using the "docker run the-image". You can specify detached mode with -d and the port with -pExample: docker run -dp 3000:3000 the-image would run the container in detached mode and map the hosts port 3000 to the container's port 3000

How can you access the path variables of an incoming HTTP request within a Java servlet?

By using the ServletRequest getRequestURL() method.

What solutions exist for providing connection pooling in Java?

C3PO, Apache Commons, Hikari CP,

What is CORS?

CORS (Cross-Origin Resource Sharing) is an HTTP-header based mechanism that allows a server to indicate any other origins (domain, scheme or port) than its own from which a browser should permit loading of resources.

What is the purpose of caching in Hibernate?

Cache memory stores recently used data items in order to reduce the number of database hits as much as possible.

What is Caching?

Caching is the ability to store copies of frequently accessed data in several places along the request-response path.

What are callback functions? What about self-invoking functions?

Callbacks are functions that you pass into another function to be invoked at a later time. Self invoking functions are wrapped around parentheses and another set of parentheses is adjacent to it. Example: (function() { console.log("Hey")})();

What's the benefit of computed property names?

Can use object literal notation to assign the expression as a property on the object without having to create the object first. So, instead of making an object and assigning a value to a key like obj[key] = value you can instead use [key]: value without having to create the object.

What is a persistent connection?

Channel that remains open for more requests after handling one. Lets use one connection for multiple requests instead of just making a new connection for every request/response.

What is the difference between class-based inheritance and prototypal inheritance?

Class: classes can extend other classes, retaining the base implementationPrototypal: a base object which can be cloned and extended. (frequently refers to JavaScript)

What does it mean for locks to be reentrant?

It is a lock that allows threads to enter into the lock on a resource more than once before releasing the lock

What is AWS?

Cloud computing platform that includes a mixture of infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS) offerings.

What is CloudFormation?

CloudFormation is an AWS service that can take in a script detailing service resource allocation and does it. CloudFormation can automatically set up a CodePipeline, EB, S3 buckets and whatever resources are specified in the script without the user needing to manually set up any of these resources.

What are code smells?

Code smells are not bugs and doesn't prevent the program from functioning. It indicates weaknesses in design that may slow down development or increase the risk of bugs or failures in the future.

What is the basic workflow for containerizing an application using Docker?

Code the application, create a DockerFile, use docker build to create a Docker Image, then docker run to create the Container

What solutions exist for continuous integration that you are aware of?

CodeBuild on AWS, Jenkins

What is CodePipeline?

CodePipeline gives an overview of a CI/CD pipeline using CodeBuild. CodePipeline can automatically deploy a project to a specified location (EB) after CodeBuild finishes. Continuous delivery / deployment

What solutions exist for continuous delivery/deployment that you are aware of?

CodePipeline on AWS

What is cURL?

Command line tool and library to transfer data using different network protocols

Is a component considered a directive? Why or why not?

Components are considered directives, for they both are able to manipulate the DOM elements displayed on the page.Directives add behavior to an existing DOM element, while Components are able to create their own views of DOM elements with specified behaviors.Components are used for reusable DOM elements with custom behavior, while Directives are used for reuseable behavoir on existing DOM elements

What are components?

Components are the main building blocks of Angular applications. They consist of an HTML, CSS, Spec and TypeScript file. The HTML template declares what renders on the page, while the TypeScript file defines the behaviour of the page. The Spec file holds the unit tests for the component, and the CSS file is optional and tells how the CSS is applied to the template.

How can a component be notified of new values provided to an observable?

Components can be notified of new values provided to an observable by passing an observer object to the subscribe method of an observable. The subscribe() method returns a Subscription object, which recieves the notifications of values provided to an observable. This can be stopped by calling the unsubscribe on the Subscription object

What is a component? How would you create one? List some other commands using the Angular CLI

Components encapsulate data, logic and structure for a view. Most basic building block of an angular app. Angular apps contain a tree of components.ng generate component component-name-goes-hereTo USE one - create it (see above or generate files manually),register the component in a module, and add an element in the HTML markup where the component should be rendered

What are the disadvantages to using JWTs for authentication/authorization?

Compromised Secret Key: If the key to encrypt/decrypt a JWT is leaked, the whole system is compromisedJWTs aren't easily revocable: a JWT could be valid even though the user's account has been suspended or deletedData Overhead: The size of the JWT token will be more than that of a normal session token, and the more data added to the JWT token increases its size linearly.

What Spring SubProjects do you know?

Core - a key module that provides fundamental parts of the framework, like IoC or DI JDBC - this module enables a JDBC-abstraction layer that removes the need to do JDBC coding for specific vendor databases ORM integration - provides integration layers for popular object-relational mapping APIs, such as JPA, JDO, and Hibernate Web - a web-oriented integration module, providing multipart file upload, Servlet listeners, and web-oriented application context functionalities MVC framework - a web module implementing the Model View Controller design pattern AOP module - aspect-oriented programming implementation allowing the definition of clean method-interceptors and pointcuts

What is a transaction?

It is a logical unit of work that contains one or more SQL statements.

What are some benefits of HQL over SQL

It is database agnostic, it can easily be reconfigured to a new database namespace (from Postgre to Oracle etc.)

When would a server send you a 409 status code?

Conflict

When would your API respond with a 409 status code?

Conflict response status code indicates a request conflict with current state of the target resource.Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when uploading a file which is older than the one already on the server resulting in a version control conflict.

What information is provided to the configuration of the DataSource bean within Spring ORM?

Connection details to allow hibernate to connect to the DB

What is a connection pool?

Connection pooling is a well-known data access pattern, whose main purpose is to reduce the overhead involved in performing database connections and read/write database operations. In a nutshell, a connection pool is, at the most basic level, a database connection cache implementation, which can be configured to suit specific requirements.

What is contiuous inspection?

Constantly scanning your code for defects (e.g. bad practice in writing code, code that's not thread-safe, places where null pointer exceptions could happen)

How is a container different from a virtual machine?

Container is a lighter-weight, more agile way of virtualization so instead of spinning up an entire virtual machine(an emulation of a physical computer), container packages together everything needed to run a small piece of the code, its dependencies, and even the operating system itself.Container runs on current OS vm uses hypervisor to create whole new virtual OS on top of current one

Why is containerization so important?

Container is one of the latest developments in the evolution of cloud computing. Containers improve application life-cycle management through capabilities such as continuous integration and continuous delivery. Eliminates "works on my machine" problem

What is continuous deployment?

Continuous deployment builds off of CI by deploying built files (e.g. .jar, .war) to a production-ready environment.

Describe the core class/interface hierarchy of the Hibernate API

Core interfaces include: Hibernate, Session, SessionFactory, Transaction, Query, Criteria, ScrollableResultsThe Core class is the Configuration classClasses:Configuration - config file represtentation Interfaces:Session Factory - inited by config obj allows for and manages new sessions Session - gets physical connection to DB handles transactions - holds mandatory cache of persistent objects through lifecycleTransaction - unit of work with the database (optional)Query - use sql/hql to retrieve data, bind paramaters, limit results and execute queryCriteria Query - used for object oriented queries (criteria builder) ?

Explain how you would connect your Java application to a database using JDBC.

Create a new Connection that is set to a DriverManager.getConnection(urlToDatabase, usernameToDatabase, PasswordToDatabase) and use the connection that is returned in your statement or returned statement. Make sure not to hard code the url, username, and password for security reasons and instead use a separate application.properties file or use environment variables.

What are some notable features in Spring Boot?

Create stand-alone Spring applications Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) Provide opinionated 'starter' dependencies to simplify your build configuration Automatically configure Spring and 3rd party libraries whenever possible Provide production-ready features such as metrics, health checks, and externalized configuration Absolutely no code generation and no requirement for XML configuration

When would a server send you a 201 status code?

Created

When would your API respond with a 201 status code?

Created success status response code indicates that the request has succeeded and has led to the creation of a resource.

What are cross-cutting concerns? Provide examples

Cross-cutting concerns are parts of a program that rely on or must affect many other parts of the system. They form the basis for the development of aspects. Such cross-cutting concerns do not fit cleanly into object-oriented programming or procedural programming.Aspects enable the modularization of concerns (such as transaction management, logging, security, etc.) that cut across multiple types and objects. (Such concerns are often termed "cross-cutting" concerns in AOP literature.)

What is the DOM? How is it represented as a data structure? What object in a browser environment allows us to interact with the DOM?

DOM stands for Document Object Model. Connects web pages to scripts or programming langauges by representing the structure of a document - such as the HTML representing a web page - in memory. Usually it refers to JavaScript, even though modeling HTML, SVG, or XML documents as objects are not part of the core JavaScript langauge. DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree. With them, you can change the document's structure, style, or content. The easiest way to interact with the dom is through an elment's class, ID, or the elements themselves.

What keywords are associated with DCL?

Data Control Language (GRANT, REVOKE) - These statements restrict and grant access to our schemas is an important part of maintaining proper security over a database.

What keywords are associated with DDL?

Data Definition Language (CREATE, ALTER, DROP, TRUNCATE) - These statements allow us to perform several tasks on our database (Creating, altering,and dropping schema objects, Analyze information on a table, index, or cluster, Establish auditing options, Add comments to the data dictionary).

What keywords are associated with DML?

Data Manipulation Language (INSERT, SELECT, UPDATE, DELETE) - These statements access and manipulate data in existing schema objects. These statements do not implicitly commit the current transaction.

What keywords are associated with DQL?

Data Query Language (SELECT) - Many vendors classify the SELECT statement as a DML statement, but there are several resources in which it is set aside into its own sublanguage.

Is SQL considered a procedural, declarative, or functional language?

Declarative (focused on defining outcomes over procedure). declarative with procedural elements

What is JDBC?

Java Database Connectivity. It is an API that manages connecting to a database, issuing queries and commands, and handling result sets obtained from the database.

What is a decorator?

Decorators are used to store metadata about the aspect that they are annotating, or decorating. There are 4 type of decorations: Class decorators, Method decorators, Property decorators and Parameter decorators. Each decorator has a base configuration with default values, and those values are used when the component is created by the relevant factory.

What is dependency injection?

Dependency Injection is when one class needs an instance of a second class to perform operations, and that instance of the second class is provided by a third, separate object. We saw this with our AppState class in project 0, and later Spring did this for the beans we made. The Spring sheet has more info about dependency injection.

Describe the Dependency Inversion Principal

Dependency Inversion means that classes should not rely on specific implementation details of classes it uses. For example, a method that uses a List object should not rely on the List being stored in an array under the hood (because it could be stored like a linked list).

Is it a best practice to use global variables? Why or why not?

Depends on the situation I would think to some degree but likely not. If you end up extending your project a ways and pull in a bunch of other libraries to help out along the way using global variables would land you in a tough situation due to possible name duplicates and just keeping track of them all. Better to pass variables.It's best practice to not use global variables except for constants that you will use throughout the file.

What is the purpose of @Transactional? Where should this annotation be placed? How is its use enabled?

Describes a transaction attribute on an individual method or on a class. At the class level, this annotation applies as a default to all methods of the declaring class and its subclasses.By using @Transactional, many important aspects such as transaction propagation are handled automatically. In this case if another transactional method is called by businessLogic(), that method will have the option of joining the ongoing transaction.The annotation supports the following configurations:-the Propagation Type of the transaction-the Isolation Level of the transaction-a Timeout for the operation wrapped by the transaction-a readOnly flag - a hint for the persistence provider that the transaction should be read only-the Rollback rules for the transactionNote that by default, rollback happens for runtime, unchecked exceptions only. The checked exception does not trigger a rollback of the transaction. We can, of course, configure this behavior with the rollbackFor and noRollbackFor annotation parameters.the @EnableTransactionManagement annotation that we can use in a @Configuration class to enable transactional support:

What is object and array destructuring? What is the rest/spread operator?

Destructuring came with ES6. It is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables. Destruct an array by having an array with values and then setting another field equal to that array (Example: let introduction = ["hello", "I", "am"]; let [greeting, pronoun] = introduction; greeting is now equal to "hello" and pronoun is now equal to "I". The rest operator allows us to put an idefinite amount of arguments inside a parameter in a function. It looks like function exampleFunction(...arguments). The ... is the rest operator. Spread operater spreads the values in an interable (arrays, strings) across zero or more arguments or elements. The spread operator is the "..." symbol. Makes it easy to spread an array of values into another array of values (Example: const arr1 = [1,2,3,4]; const arr2 = [...arr1, 5, 6, 7, 8]; ar2 now has [1,2,3,4,5,6,7,8].

What is DevOps?

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization's ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

What is a directive?

Directives are custom HTML attributes that can tell Angular to manipulate the style or behavior of the DOM elements

How are directives registered to an Angular module?

Directives are registered the same way as components, they are placed in the declarations property of the NgModule decoration

What is the structure of an HTTP request?

GENERALLY it's like a letter with a: Request header (request type (get/post etc), Target URI, protocol version (http1.1) and the 'return address' uri) General header (can be used in both request and response, no relation to data) Entity header (describes incoming data: Content-Length, Content-Type, etc.) Blank line (\r\n) Data

What is DockerHub?

Docker Hub is a service provided by Docker for finding and sharing container images with your team.Docker Hub provides the following major features:- Repositories: Push and pull container images.- Teams & Organizations: Manage access to private repositories of container images.- Official Images: Pull and use high-quality container images provided by Docker.- Publisher Images: Pull and use high- quality container images provided by external vendors.- Builds: Automatically build container images from GitHub and Bitbucket and push them to Docker Hub.- Webhooks: Trigger actions after a successful push to a repository to integrate Docker Hub with other services.

What does it mean for a request to be safe?

Doesn't alter the state of the server. In other words, the method leads to a read-only operation.

What are the core classes and interfaces found in the JDBC API?

DriverManager class that manages JDBC drivers. Need to register your drivers to this. Driver interface that is the Base interface for every driver class. If you want to create a JDBC Driver of your own, you need to implement this interface. Statement interface that represents a static SQL statement. PreparedStatement that represents a precombiled SQL statement. Use this over Statement because it prevents SQL injection. CallableStatement interface that allows you to execute a stored procedure. Connection interface that represents the connection with a specific database. ResultSet interface that represents the database result set. ResultSetMetaData interface that is used to get information about the result set.

Name some examples of SaaS you are familiar with.

Dropbox, Gmail, Google Drive, SalesForce

What is EC2?

EC2 stands for Elastic Compute Cloud, and it is an AWS service that provides scalable computing capacity in the AWS cloud.

What is Elastic Beanstalk?

Elastic Beanstalk allows for the quick deployment and management of an application in the AWS Cloud without worrying about the infrastructure that runs those applications. It is a PaaS.

What is the difference EBS and instance storage re: EC2s?

Elastic Beanstalk allows for the quick deployment and management of an application in the AWS without worrying about the infrastructure. Amazon manages the instance while deploying your application, whereas for just an EC2 instance you have to manage the instance software, OS, etc. yourself. EBS is a PaaS, while EC2 is IaaS.EBS, or Elastic Block Store, is a block storage service that Amazon provides and that can be connected to an EC2 instance. An EBS can hold relational and non relational databases, containerized applications, file systems, etc. EC2 storage is ephemeral, a closed instance will lose all of the data stored within the machine, while EBS stays persisted across the blocks within the storage.

Explain what "strict mode" does

Enables errors to be thrown when variables are set to a different type than what they were.

Define Encapsulation

Encapsulation describes the idea of bundling data and methods that work on that data within one unit, like for example a class in Java. Encapsulation is acheived when each object keeps its state private, inside a class. Other objects don't have direct access to this state. Instead they can only call a list of public functions.So the object manages its own state via methods and no other class can touch it unless explicitly allowed.

What are the HTTP verbs/methods?

GET, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH

Name the idempotent HTTP methods.

GET, PUT, DELETE, OPTIONS, HEAD

What is event binding? Describe the syntax

Event binding is the idea of sending or updating a value or information from the view to the component, such as clicking a button and updating the text displayed on the page. An example of syntax would be that the event binding is added within the tag, and would follow (click) = "functionName()". click can be any type of event attached to the method that is being called.

What is meant by Cachable?

Every response should include whether the response is cacheable or not and how much time responses can be cached on the client side. Client will return the data from its cache for any subsequent request and there would be no need to send the request again to the server. A well-managed caching partially or completely eliminates some client-server interactions, further improving availability and performance. But sometime there are chances that user may receive stale data.

What are some examples of scalar functions?

Example of scalar functions are LOWER, UPPER, ABS, ROUND, and CURRENT_TIMESTAMP.

What are some examples of aggregate functions?

Examples of aggregate functions are AVG, MIN, MAX, SUM, and COUNT.

How could you create an instance of an ExecutorService?

ExecutorService created using the Executors newFixedThreadPool() factory method. Then an anonymous implementation of the Runnable interface is passed to the execute() method. This causes the Runnable to be executed by one of the threads in the ExecutorService.

What is a truthy or falsy value? List the falsy values.

Falsy values are evaulated to false in certain contexts. The falsy values are: 0, null, undefined, false, "", and NaN. Everything else is defined as truthy.

How does the fetch API differ from the XHR object?

Fetch is a new native JavaScript API. Fetch allows us to make network requests similar to XMLHttpRequest. Fetch is an improvement over the XMLHttpRequest API. The main difference between the two is that Fetch uses Promises, hence avoiding callback hell

Simplified: What does a bean lifecycle look like?

First, a Spring bean needs to be instantiated, based on Java or XML bean definition. It may also be required to perform some initialization to get it into a usable state. After that, when the bean is no longer required, it will be removed from the IoC container.

How can you get the name of the currently running thread in Java?

For getting the name of the thread which is currently executing you need to call the getName() method on the currently executing thread.

When would a server send you a 403 status code?

Forbidden

When would your API respond with a 403 status code?

Forbidden client error status response code indicates that the server understood the request but refuses to authorize it.

What are some advantages to using server-side HTTP sessions?

Full control of session - Can terminate a session on demand instantlyCookie size is much smallerImplementation and user details are not exposed since only reference to session data is stored in the cookieCan store as much session related data without fear of increasing cookie sizeImplementation of session management can change easily since the we store the session state ourselves, and not "in the wild"

What is a generator function? What's the point of the yield keyword?

Generator functions allow you to define an iterative algorithm by writing a single function whose execution is not continuous. Written by using the function* syntax.Generator functions do not initially execute their code, instead, they return a special type of iterator called a Generator. When a value is consumed by calling the generator's next method, the Generator function executes until it encounters the yield keyword. The yield keyword is similar to a return keyword, causing the call to the generator's next() method to return an IteratorResult object with two properties, value and done. The generator's code remains paused until the generator's next() method is called.

Name a few of the HTTP verbs/methods.

Get and post are like 90% of what's used. Others are options, delete, put etc.

What is HQL? How is it different from SQL?

HQL is an object-oriented query language, similar to SQL, but instead of operating on tables and columns, HQL works with persistent objects and their properties. HQL is a superset of the JPQL, the Java Persistence Query Language. A JPQL query is a valid HQL query, but not all HQL queries are valid JPQL queries. HQL is a language with its own syntax and grammar. It is written as strings, like "from Product p". HQL queries are translated by Hibernate into conventional SQL queries. Note that Hibernate also provides the APIs that allow us to directly issue SQL queries as well.

What are all the different ways you can create a query using hibernate?

HQL, named queries, native queries, Criteria Queries/Insert/Update/Delete (programmatic and objectoriented query creation)

What is HTTP?

HTTP is a protocol which allows the fetching of resources, such as HTML documents. It is the foundation of any data exchange on the Web and it is a client-server protocol.

What is the difference between HTTP/1.0 and HTTP/1.1?

HTTP/1.1 allows for persistent connections while HTTP/1.0, you had to open a new connection for each request/response pair

Describe the data flow of a request/response operation within a Spring MVC application

HandlerMapping: Maps a request to a handler along with a list of interceptors for pre- and post-processing. The mapping is based on some criteria, the details of which vary by HandlerMapping implementation.HandlerAdapter: Helps the DispatcherServlet to invoke a handler mapped to a request, regardless of how the handler is actually invoked. For example, invoking an annotated controller requires resolving annotations. The main purpose of a HandlerAdapter is to shield the DispatcherServlet from such details.HandlerExceptionResolver: Strategizes to resolve exceptions, mapping them to handlers, to HTML error views, or other targets.ViewResolver: Resolve logical String-based view names returned from a handler to an actual View with which to render to the response.

What is the diffrence between openSession and getCurrentSession

Hibernate SessionFactory getCurrentSession() method returns the session bound to the context. Hibernate SessionFactory openSession() method always opens a new session.

What is Hibernate framework?

Hibernate is an Object Relational Mapping tool for the Java language. It provides a framework for mapping an object-oriented domain model to a relational database.

Why should you use JPA annotations and not Hibernate annotations?

Hibernate is fully capable of working with JPA annotations. If someone decides to switch from Hibernate to another JPA, it will save you from rewriting all of your class annotations

What is Hibernate mapping file?

Hibernate mapping file is used to define the entity bean fields and database table column mappings. We know that JPA annotations can be used for mapping but sometimes XML mapping file comes handy when we are using third party classes and we can't use annotations.

What is the use of Hibernate Session merge()?

Hibernate merge can be used to update existing values, however this method create a copy from the passed entity object and return it. The returned object is part of persistent context and tracked for any changes, passed object is not tracked.

What is automatic dirty checking?

Hibernate monitors all persistent objects. At the end of a unit of work, it knows which objects have been modified. Then it calls update statement on all updated objects. This process of monitoring and updating only objects that have been changed is called automatic dirty checking in hibernate.

What is named SQL query?

Hibernate provides Named Query that we can define at a central location and use them anywhere in the code. We can create named queries for both HQL and Native SQL.

What is the difference between Hibernate save(), saveOrUpdate() and persist() methods

Hibernate save can be used to save entity to database. Problem with save() is that it can be invoked without a transaction and if we have mapping entities, then only the primary object gets saved causing data inconsistencies. Also save returns the generated id immediately.Hibernate persist is similar to save with transaction. I feel it's better than save because we can't use it outside the boundary of transaction, so all the object mappings are preserved. Also persist doesn't return the generated id immediately, so data persistence happens when needed.Hibernate saveOrUpdate results into insert or update queries based on the provided data. If the data is present in the database, update query is executed. We can use saveOrUpdate() without transaction also, but again you will face the issues with mapped objects not getting saved if session is not flushed.

What will happen if you have a no args constructor in an entity bean (managed entity)?

Hibernate uses Reflection API to create instance of Entity beans, usually when you call get() or load() methods. The method Class.newInstance() is used for this and it requires no-args constructor. So if you won't have no-args constructor in entity beans, hibernate will fail to instantiate it and you will get HibernateException.

What is the purpose of files ending with ".hbm.xml"?

Hibernate uses mapping metadata to find out how to load and store objects of the persistent class. The .hbm.xml file is one choice for providing Hibernate with this metadata

What did HTTP/2.0 change?

Http2.0 made things much faster (based on the SPDY protocol developed by google).1.1 was basically creating a TUN of requests. When the internet first came out not many people had computers and not many people were using the 'highways' (network) so to speak. Our cars to drive on that highway were kind of like horses at the time too (crappy old computers). So sending one small piece of info at a time and processing that info in order was a good idea originally.Then computers became fast and everyone got one so the network (roads) were jammed up. Enter http2.0. 2.0 makes it quicker to establish connections with a server by reducing header sizes and allowing multiple packets to be sent at once after being broken down. It also lets the server act proactively by pushing some things at first contact with the client instead of having to wait for an acknowledgement.

What is HTTPS?

Hypertext Transfer Protocol Secure = Safe extension of hypertext transfer protocol for secure communications

What is HTTP and what is it used for?

Hypertext Transfer Protocol is used to transfer multimedia resources between applications (at the application layer)

What is IAM?

IAM stands for Identity and Access Management. This is the service that allows for fine-grained access control to AWS resources. It enables you to manage access to AWS services and resources securely by creating account users and groups.

Pillars of OOP

IPEA: Inheritance, Polymorphism, Encapsulation, Abstraction

What is IaaS? What is provided by the cloud vendor vs what the user must manage?

IaaS stands for Infrastructure as a Service. IaaS is an instant computing infrastructure, provisioned and managed over the internet. In IaaS, the cloud vendor provides servers and storage, networking firewalls/security, and the physical data center plant/building. The user manages operating systems, Development tools, database management, and business analytics, and the Hosted applications/apps.

If using component-scanning, what is the default name given to a bean? How can you change this?

If using component scanning, the default name of the bean will be the name of the class (@Component), with the first letter lower case. You can change this by having a string with the name inside the @Component annotation.EX: @Component("newName")public class Test {}

Name the safe HTTP methods.

If you don't change the resource it's safe. Options, get and head are the only 3

What is component-scanning in Spring?

If you're not using xml, you give your root folder to spring to search through all of it's components for classes annotated as beans for Spring to search through and find them.-OR-We can annotate our classes in order to make them into Spring beans and then we can tell Spring where to search for these annotated classes. We use the @ComponentScan annotation along with @Configuration annotation to specify the packages that we want to be scanned.

What is meant by "infrastructure-as-code"?

Is the practice of describing all software runtime environment and networking settings and parameters in simple textual format, that can be stored in your Version Control System (VCS) and versioned on request.

What is dependency injection?

In Java, before we can use methods of other classes, we first need to create the object of that class (i.e. class A needs to create an instance of class B before using B).So, transferring the task of creating the object to someone else and directly using the dependency is called dependency injection.-OR-A process whereby objects define their dependencies (that is, the other objects they work with) only through constructor arguments, arguments to a factory method, or properties that are set on the object instance after it is constructed or returned from a factory method. The container then injects those dependencies when it creates the bean. This process is fundamentally the inverse (hence the name, Inversion of Control) of the bean itself controlling the instantiation or location of its dependencies by using direct construction of classes or a mechanism such as the Service Locator pattern.

Configuration

In general anything can be configured via xml file or programmatically via annotations

Using JPA annotations, how can you specify that new entries of mapped entity will have autogenerated primary keys?

In order to specify autogenerated primary key for a mapped entity, you need to first use the @Id to specify that the field is a primary key and Then use @GeneratedValue(strategy = GenerationType.IDENTITY). Note that the strategy can change depending on the database you are working with. GenerationType.IDENTITY works with postgres due to postgres autogenerating a key on its end.

Are DML statements in JDBC automatically committed? Is this a problem?

In the JDBC, autocommit property is enabled by default when the connection is created. You would need to disable this property explicitly if you want the transaction to be completed only after using the commit function. If I remember correctly, this can be an issue if two or more connections are communicating with the same data at the same time. I believe this causes errors later. It would probably be better to have more control and only commit when you explicitly want to.

What infrastructure-as-code solutions are you familiar with?

Infrastructure-as-code on AWS powered by CloudFormation Service and Azure using Azure Resource Manager, Docker

What sorts of joins exist in SQL?

Inner Joins (Selects records with matching values from TableA and TableB), Left (Outer) Join (Selects all records from TableA and matching value with TableB), Right (Outer) Join (Selects all records from TableB and matching value with TableA), and Cross Join (Selects every possible combination of rows between the joined sets (cartesian product)).

Describe the Interface Segregation Principal

Interface Segregation is the principle that no class should be forced to implement or depend on methods it does not use.

What are some of the core classes and interfaces in the Java Servlet API?

Interfaces:ServletServletRequestServletResponseRequestDispatcherServletConfigServletContextClasses:GenericServletServletInputStreamServletOutputStreamHttpServletHttpServletRequest

When would a server send you a 500 status code?

Internal Server Error

What is inversion of control?

Inversion of Control is a principle in software engineering by which the control of objects or portions of a program is transferred to a container or framework. IoC enables the framework to take control of the flow of a program and make calls to our custom code. In the Spring framework, the IoC container is represented by the interface ApplicationContext. The Spring container is responsible for instantiating, configuring and assembling objects known as beans, as well as managing their lifecycle.

What is continuous integration?

Is a software development process where developers integrate the new code they have written more frequently throughout the development cycle and adding it to the base at least once a dayContinuous integration helps streamline the build process, resulting in higher-quality software and more predictable delivery schedulesAutomatically building and testing code when pushed to a remote repo, then informing developers of the status of the build and tests.

What is a container?

Is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.

What is Docker?

Is a tool designed to make it easier to create, deploy, and run applications by using containers

Why use any Framework?

It isn't absolutely necessary to use a framework to accomplish a task. But, it's often advisable to use one for several reasons:-Helps us focus on the core task rather than the boilerplate associated with it-Brings together years of wisdom in the form of design patterns-Helps us adhere to the industry and regulatory standards-Brings down the total cost of ownership for the application

What is meant by Stateless?

It means that the necessary state to handle the request is contained within the request itself and server would not store anything related to the session. In REST, the client must include all information for the server to fulfill the request whether as a part of query params, headers or URI. Statelessness enables greater availability since the server does not have to maintain, update or communicate that session state. There is a drawback when the client need to send too much data to the server so it reduces the scope of network optimization and requires more bandwidth.

What is meant by Uniform Interface?

It suggests that there should be an uniform way of interacting with a given server irrespective of device or type of application (website, mobile app).There are four guidelines principle of Uniform Interface are:- Resource Based: Individual resources are identified in requests. Ex: API/users-Manipulation of Resources Through Representations: Client has representation of resource and it contains enough information to modify or delete the resource on the server provided it has permission. EX: provided id so user can delete by id-Self-descriptive Messages: Each message includes enough information to describe how to process the message so that server can easily analyze request-Hypermedia as the Engine of Application State (HATEOAS): it needs to include links for each response so that client can discover other resources easily.

What are common interfaces which our custom data repository interfaces should extend?

JPARepository, PagingRepository, SortingRepository, CRUDRepository

Explain how inheritance works in JS

JS inheritance is prototype based. JS has objects instead of classes and each object has a private member that points to its 'prototype object'. That prototype also has a prototype object and so on. Eventually a prototype will be set to null identifying the start or 'parent' of the prototype chain.

What is JSON? Is it different from JS objects?

JSON originated based off of how javascript objects work so they are similar but not the same. They both have key value pairs as their basis but in json both key and value are surrounded with quotes - javascript the key isn't and the value is formated according to js practices. JSON can obviously be used by many different programming languages though as well - javascript objects are native to javascript..

What are some alternative libraries that you can use for JSON parsing and binding besides Jackson?

JSON-P, GSON, JSON-Java (see https://coderolls.com/parse-json-in-java/ for examples)

What are some examples of JSR-303 (Bean Validator) annotations?

JSR-303 bean validation is an specification whose objective is to standardize the validation of Java beans through annotations. The objective of the JSR-303 standard is to use annotations directly in a Java bean class.@AssertFalse The field value must be false. @AssertTrue The field value must be true. @DecimalMax The field value must be a decimal value lower than or equal to the number in the value element. @DecimalMin The field value must be a decimal value greater than or equal to the number in the value element. @Digits The field value must be a number within a specified range. @Future The field value must be a Date in the future. @Max The field value must be an integer value lower than or equal to the number in the value element. @Min The field value must be an integer value greater than or equal to the number in the value element. @NotNull The field value must not be null. @Null The field value must be null. @Past The field value must be a Date in the past. @Pattern The field value must match the regular expression defined in the regex element. @Size The field size is evaluated and must match the specified min and max boundaries.

What is a JWT?

JWT stands for JSON Web Token. It defines a compact and self-contained way for securely transmitting information between parties as a JSON object. The information can be verified and trusted because it is digitally signed.

What is Jackson and why is it used?

Jackson is a Java library that can be used to create or map JSON files to Java objects

What version of Java were ExecutorServices introduced?

Java 5

Name a few examples of concurrent/thread-safe collection implementations in Java.

Java originally only had two implicitly thread-safe collections, vectors and hashtables. Later on, the collections framework added the ability to get base collections with wrappers around them to make them thread-safe. They can be accessed by Collections.synchronised_collection_(); For example, to make a thread-safe list: List<String> syncCollection = Collections.synchronizedList(Arrays.asList("a", "b", "c"));

Describe the Java Thread class and list a few of the methods it exposes.

Java provides a thread class that has various method calls in order to manage the behavior of threads. It extends Object and implements the runnable interface. currentThread(): Returns a reference to the currently executing thread object activeCount(): returns an estimate of the number of active threads in the current threads thread group getId(): returns the identifier of this Thread getPriority(): Returns this thread's priority getState(): Returns the state of this thread

What is a Java servlet?

Java servlets are Java programs that run on Java-enabled web servers or application servers.They are used to handle the request obtained from the web server, process the request, produce the response, and then send the response back to the web server

Can we run JavaScript in a web browser, on a server, or both?

JavaScript can be used on both the client-side (web browser) and server-side.

Does JS have classes? If so, when were they introduced?

JavaScript does have classes. They were introduced with ES6 (also known as ECMAScript 2015)

What is the data type of a function?

JavaScript doesn't have a function data type but when we find the data type of a function using the typeof operator, we find that it returns a function. This is because a function is an object in JavaScript. Ideally the data type of a function should return an object but instead, it returns a function.

What programming paradigm(s) does JS support?

JavaScript is a multi-paradigm language, supporting imperative/procedural programming along with OOP (Object-Oriented Programming) and functional programming. JavaScript supports OOP with prototypal inheritance.

What is JavaScript? What do we use it for?

JavaScript is a text-based programming language used both on the client-side and server-side that allows you to make web pages interactive. Where HTML and CSS are languages that give structure and style to web pages, JavaScript gives web pages interactive elements that engage a user.

What is the difference between L1 and L2 caching?

L1 usually built on the microprocessor, L2 is another seperate chip. L1 will be faster but has a smaller space to hold data. while L2 will be slower than L1 but has more space both will be faster than RAM- L1 caching saves data in a Session cache- L2 caching saves data in a SessionFactory cache (available to all Sessions)

What is the lifecycle of a component? List some lifecycle hooks

Life cycle is the stages a componnet goes through from intialization to destruction of that componenet. The life cycle hooks are :- ngOnChanges - run before init and after every change of an input control within a component. - ngOnInit - initializes data within a component. - ngDoCheck - runs everytime the input components are checked for changes. - ngAfterContentinit - is executed when Angular performs any content projection within the component views. - ngAfterContentChecked - executes every time when the content of the component has been checked by the change detection mechanism of the Angular. - ngAfterViewInit - executes when the component's view has been fully initialized. - ngAfterViewChecked - executed every time when the view of the given component has been checked by the change detection algorithm of Angular. This method executes every subsequence execution of the ngAfterContentChecked. - ngOnDestroy - executed just before Angular destroys the components.

Describe the Liskov Substitution Principal

Liskov Substitution means that a reference to a parent class object should be subsitutable for a child class object without losing functionality or correctness.

How would you implement routing in your project?

Make an app-routing.module.ts file. Import Routes from @angular/router. Create a Routes array. Inside of this array are objects that have a path and a component. Within the imports of the @NgModule, add RouterModule.forRoot(variableNameOfArrayOfRoutes) and inside the exports add RouterModule. Within the app.module file add the file for the routing module if it wasn't added automatically by the CLI. Then within the app component html add the tag <router-outlet></router-outlet> Now whichever path you go to on your website, that specific component will load up on the Angular web page.

What is the difference between manual bean wiring and autowiring?

Manual bean wiring is the process in which a bean's dependencies are associated with the parent bean through explicit configuration. If leveraging constructor injection, this is done in XML configuration by including a constructor-arg tag with a bean id specified in the ref attribute. If setter injection is done, then the parent bean definition will include a property tag that points to the appropriate field in the class declaration, along with a ref attribute that uses the appropriate bean id.If we let Spring scan our packages for us, using component scanning, we do not need to provide explicit bean definitions in an XML file, nor within some configuration class. Instead, Spring will scan the specified package for classes annotated with @Component (or another stereotype annotation) and create the bean definitions for them from the class declaration. If the annotated class has any dependencies that need to be managed by Spring, then the @Autowired annotation should be used where the dependency is being injected (either a constructor or a setter).

Marshalling and Unmarshalling

Marshalling and unmarshalling is used both on the client and server side. Marshaling is the process of transforming the memory representation of an object into a data format suitable for storage or transmission. On the server side it is used to map an incoming request to a Java object and to map a Java object to an outgoing response. Similarly, on the client side, it is used to marshal an object to an outgoing HTTP request and unmarshal it from an incoming response.

What does it mean for a request to be idempotent?

Means when you make the same request over and over on a resource the same thing will occur ie if you get on the same file over and over you'll still get the same file and you won't get a new file or appended one or anything weird. An idempotent request will not change the state of the server after the initial time it runs(or could never change it) and will always generate the same response.

When would your API respond with a 405 status code?

Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.The server MUST generate an Allow header field in a 405 response containing a list of the target resource's currently supported methods.

What is a Angular module?

Modules contain components, services and other files that are scoped to the containing module. Each module can export its functionality for other modules to use, as well as import other module functionalities to use within itself.

What is the structure of an HTTP response?

More like a receipt with Response header (status line that gives Http version, status code, and reason phrase) General and entity headers Blank line follows the status line With a body representing some piece of data below

What are some disadvantages to using server-side HTTP sessions?

More points of failure - If the DB is unavailable, no sessions can be created, touched, or validatedMore overhead in creating and touching session (a db read, write, and replication is required)No future potential for applications to verify session without having to call nodesServer is not statelessCreates issues when deploying a web app over multiple serversHttpSessions are generally stored in server cache, so how do you do load balancing and persist users' sessions through multiple requests to potentially different servers?

How would you configure contextual sessions between Spring and Hibernate?

Most applications using Hibernate need some form of "contextual" sessions, where a given session is in effect throughout the scope of a given context.Hibernate 3 provides a feature called "contextual Sessions", where Hibernate itself manages one current Session per transaction. This is roughly equivalent to Spring's synchronization of one Hibernate Session per transaction.Configuration for Spring-Hibernate contextual sessions is fairly straightforward and requires the use of three beans which need to be defined and wired to one another for the container:-Data Source (DriverManagerDataSource): Provides connection details to allow Hibernate to connect to the DBSession Factory (LocalSessionFactoryBean): Leverages the Data Source bean as a dependencyProvides configuration to the SessionFactory object, such as:base package to scan for entitiesSQL dialectShow/Format SQL in consoleHibernate Mapping to DDL (HBM2DDL)Transaction Manager (HibernateTransactionManager): Leverage the Session Factory bean as a dependencyAllows Spring to manage transaction isolation, propagation, and state

When would a server send you a 301 status code?

Moved Permanently

When would a server send you a 302 status code?

Moved Temporarily

What is the type of NaN? What is the isNaN function?

NaN (Not a Number) is a Number data type. The isNaN function determines if a value is an illegal number.[other symbolic number types include : +Infinity and -Infinity

What is the difference between Query and CriteriaQuery (Pre-Hibernate v5: Criteria)?

Named queries are more optimal (they are parsed/prepared once). Criteria queries are dynamic, (they are not precompiled).I would use criteria only for dynamic queries. The criteria query API lets you build nested, structured query expressions in Java, providing a compile-time syntax checking that is not possible with a query language like HQL or SQL.

What is the difference between a named query and a named native query?

Native query refers to actual sql queries (referring to actual database objects). Named query is the way you define your query by giving it a name. You could define this in mapping file in hibernate or also using annotations at entity level.

When would a server send you a 204 status code?

No Content

When would your API respond with a 204 status code?

No Content success status response code indicates that a request has succeeded, but that the client doesn't need to navigate away from its current page.

What is normalization?

Normalization is the process of removing redundancies and ensuring that data dependencies are logically stored.

When would a server send you a 404 status code?

Not Found

When would your API respond with a 404 status code?

Not Found client error response code indicates that the server can't find the requested resource. Links that lead to a 404 page are often called broken or dead links.

What is the difference between undefined and null?

Null is an empty or non existent value that must be assigned. Unassigned most typically means a variable has been declared but not defined (although it can be assigned undefined). Also when you look up a non-existent property in an object, you will receive undefined. Both are however falsy values and both are primitivesNull does not strictly equal undefined but does loosely equal undefined (via performance type conversion)

Describe the characteristics of the object-oriented paradigm

OO paradign is a significant methodology for the development of any software. https://www.tutorialspoint.com/software_architecture_design/object_oriented_paradigm.htm Most of the architecture styles or patterns such as pipe and filter, data repository, and component-based can be implmented by using this paradigm.

What are the states in which an object can exist in Hibernate?

Object states in Hibernate plays a vital role in the execution of code in an application. Hibernate has provided three different states for an object of a pojo class. These three (four) states are also called as life cycle states of an object.Managed (Persistent), Detached, Transient, Deleted (optional)

Tell me about the Detached State

Object which is just removed from hibernate session is called as detached object. When the object is in detached sate then it contain identity but you can't do persistence operation with that identity. Any changes made to the detached objects are not saved to the database. The detached object can be reattached to the new session and save to the database using update, saveOrUpdate and merge methods.

What are JS objects? what is the syntax?

Objects are containers for data values. They are created by specifying name-value pairs that identify the objects properties and their values. ie. var car = {type:"Fiat", model:"500", color:"white"};

What is an observable? Describe some of their use cases in Angular applications

Observables are an interface to handle asynchronous operations. A use case for observables is the HTTP module uses observables for handling AJAX requests and responses. Router and Form modules also use observables to listen to and respond to user input events.

What is a non-repeatable read? What isolation level(s) resolve this phenonmenon?

Occurs when a transaction reads same row twice, and get a different value each time. Fixed by Repeatable Read and Serializable.

What is a phantom-read? What isolation level(s) resolve this phenonmenon?

Occurs when two same queries are executed, but the rows retrived by the two, are different. Fixed by Serializable.

What is the global object in client-side JavaScript?

On the client side the global object is this. In a browser, this refers to a window object (contains the DOM). In Node, this refers to an empty object.

Why is Spring Boot said to be "opinionated"?

Opinionated is a software design pattern that decides or guides you into their way of doing things. Spring Boot is opinionated because it follows the opinionated default configuration that reduces developer efforts to configure the application.

What are the different ways to declare global variables?

Outside a function normally or wherever without the definition keywords of let or get. IE car = "vw" would be global.

When should you use an HTTP PUT request?

PUT is used to update data in some resource if the data already exists, or create the data in that resource if it does not exist. Similar to POST, but will overwrite data at the given resource if it already exists.

What is PaaS? What is provided by the cloud vendor vs what the user must manage?

PaaS stands for Platform as a Service. PaaS is a complete development and deployment environment in the cloud. PaaS includes infrastructure and middleware, so it includes the same things as IaaS, but additionally provides operating systems and Development tools, database management, and business analytics. The use manages hosted applications/apps.

How are pipes registered to an Angular module?

Pipes are registered by adding the pipe name to the declarations property array, much like the components and directives

Define Polymorphism and provide advantages to using it

Polymorphism gives a way to use a class exactly like its parent without losing the child classes own mrthods.This typically happens by defining a (parent) interface to be reused. It outlines a bunch of common methods. Then, each child class implements its own version of these methods.Any time a collection (such as a list) or a method expects an instance of the parent (where common methods are outlined), the language takes care of evaluating the right implementation of the common method — regardless of which child is passed.Any Java object that can pass more than one IS-A test is considered to be polymorphic. In Java, all Java objects are polymorphic since any object will pass the IS-A test for their own type and for the class Object.

What is the purpose of the PrintWriter in a Java servlet? How is one obtained in order to write a response?

PrintWriter in a Java servlet allows for the output to be character data. It can be obtained by using the .getWriter() method for the response object.

Describe the ExecutorService interface.

Provides a thread pool feature to execute asynchronous short tasks. Extends executor interface // ExecutorService interface is a subinterface of Executor interface, and adds features to manage the lifecycle, both of the individual tasks and of the executor itself.

What is the difference between a query parameter and a path variable?

Query parameters appear on the right side of the ? in a URL, while path parameters come before.Query parameters are used to sort/filter resources, while path parameters are used to identify a specific resource or resourcesPath parameters can't be omitted since they are part of the URL, while query parameters are added at the end.Query parameters have unique attributes which help to define resources in a better way. Path parameters have dynamic resources which act upon more granular objects of the resource.

What are transaction propagation levels in Spring ORM?

REQUIRED@Transactional(propagation=Propagation.REQUIRED)same physical transaction will be used if one already exists, otherwise a new transaction will be openedREQUIRES_NEW@Transactional(propagation=Propagation.REQUIRES_NEW)indicates a new physical transaction will be created for @Transactional method -- inner transaction can commit or rollback independently of the outer transactionNESTED@Transactional(propagation=Propagation.NESTED)inner and outer use same physical transaction, but are separated by savepoints (JDBC drivers only)MANDATORY@Transactional(propagation=Propagation.MANDATORY)existing transaction must already be opened or container will throw an errorNEVER@Transactional(propagation=Propagation.NEVER)container will throw an error if a session is open (oppostite of mandatory)NOT_SUPPORTED@Transactional(propagation=Propagation.NOT_SUPPORTED)executes outside any existing transaction, current existing transaction will be pausedSUPPORTS@Transactional(propagation=Propagation.SUPPORTS)executes within the scope of existing transactionotherwise, executes non-transactionally

What is meant by Client-Server?

REST application should have a client-server architecture. A Client is someone who is requesting resources and is not concerned with data storage, which remains internal to each server, and server is someone who holds the resources and are not concerned with the user interface or user state. They can evolve independently. Client doesn't need to know anything about business logic and server doesn't need to know anything about frontend UI.

Why proper representation of Resource is required?

REST does not impose any restriction on the format of a resource representation. A client can ask for JSON representation whereas another client may ask for XML representation of the same resource to the server and so on. It is the responsibility of the REST server to pass the client the resource in the format that the client understands. Following are some important points to be considered while designing a representation format of a resource in RESTful Web Services.-Understandability: Both the server and the client should be able to understand and utilize the representation format of the resource-Completeness: Format should be able to represent a resource completely. -Linkability: A resource can have a linkage to another resource, a format shoule be able to handle such situations.

What is REST?

REST represents REpresentational State Transfer; it is a relatively new aspect of writing web API.

What is RESTful?

RESTful is used to describe web services written by applying REST architectural concepts, it focuses on system resources and how the state of resources should be transported over HTTP protocol to different clients written in different languages. In RESTful web services HTTP methods like GET, POST, PUT and DELETE can be used to perform CRUD operations.

What are the transaction isolation levels?

Read Uncommitted - Lowest isolation level (One transaction may read not yet committed changes made by other transaction, thereby allowing dirty reads), Read Committed (Guarantees that any data read is committed at the moment it is read), Repeatable Read (Most restrictive isolation level. Transaction holds read lock on all rows it references on all rows it inserts, updates, or deletes.), and Serializable (Highest isolation level. A sereialization execution is guaranteed to be serializable. Defined to be an execution of operations in which concurrently executing transactions appear to be serially executing).

What is RDS?

Relational Database Service (RDS) enables developers to create and manage relational databases in the cloud.

What does a 500-level status code generally convey?

Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request. Aka request failed because the developer needs to review their server code (server error)

What is the difference between @RestController and @Controller?

RestController is a convenience annotation that combines @Controller and @ResponseBody - which eliminates the need to annotate every request handling method of the controller class with the @ResponseBody annotation.

What is your understanding of what are RESTful web services?

Restful Web Services is a lightweight, maintainable, and scalable service that is built on the REST architecture. Restful Web Service, expose API from your application in a secure, uniform, stateless manner to the calling client. The calling client can perform predefined operations using the Restful service. REST stands for REpresentational State Transfer.

History of REST

Roy Fielding defined REST in his 2000 PhD dissertation "Architectural Styles and the Design of Network-based Software Architectures" at UC Irvine.[3] He developed the REST architectural style in parallel with HTTP 1.1 of 1996-1999, based on the existing design of HTTP 1.0[7] of 1996.

In what version of Java was the Runnable interface introduced?

Runnable has been around since Java 1.0

What is the Runnable interface used for?

Runnable is an interface that is to be implemented by a class whose instances are intended to be executed by a thread. It takes no parameters and has no return values but does provide a run() method used by the thread.

How do you create a Thread in Java?

Runnable runnable = () -> {...} Thread thread = new thread(runnable);

What is S3?

S3 stands for Simple Storage Service. S3 is a secure, durable, object storage. It enables users to store and retrieve any amount of data, and can be used alone or with other AWS services.

What does the acronym SOLID stand for?

SOLID stands for 5 principles of OOP, namely:- Single Responsibility - Open/Closed- Liskov Substitution- Interface Segregation- Dependency Inversion

What is SQL injection?

SQL injection occurs when a user passes over over a String that is also SQL code and causes a statement to commit SQL code that was not intended. This is usually done to retrieve more information than what the user was supposed to get, all because the user understood that they were able to manipulate the communication between the repository class's method and the database. Avoid this by using a prepared statement.

What is the difference between a union and a join?

SQL union constructs must match up possibly dissimilar types to become a single result set while a join clause combines columns from one or more tables in a relational database.

What is SaaS? What is provided by the cloud vendor vs what the user must manage?

SaaS stands for Software as a Service. SaaS is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. The cloud vendor is in charge of everything, The physical servers, the networking security, operating systems, Development tools, and the hosted applications and apps.

What Session methods can be used to move from the detached state to the persistent state?

Save(), saveorupdate(), merge(), lock()

What are security groups?

Security groups are broad sets of rules and restrictions on a user's use of the AWS CLI or console.

When would your API respond with a 401 status code?

Unauthorized client error status response code indicates that the request has not been applied because it lacks valid authentication credentials for the target resource.

What is the difference between server-side rendering and client-side rendering?

Server-side rendering is the most common method for displaying information onto the screen. It works by converting HTML files in the server into usable information for the browserClient-side rendering is rendering content in the browser using JavaScript. Instead of getting all the content from the HTML document itself, you are getting a bare-bones HTML document with a JavaScript file that will render the rest of the site using the browser. Pros for client-side: Server loads initial page fasterClient offers fast website rendering after initial load Cons for client-side:Server has an overall slow page rendering Client requires more time to load initial page and in most cases requires an external library

Explain the difference between server-side and client-side rendering

Server-side rendering will render the webpage on every new request that is sent to the server, which can slow down larger webpages with many different pages. Client-side rendering will render the webpage content on the browser by using JavaScript or TypeScript to dynamically change what is displayed on the screen, reducing server calls and time to get HTML from the server.

When would a server send you a 503 status code?

Service Unavailable

How are services registered to an Angular module?

Services are registered by adding the service name to the array within the providers property of the NgModule decoration. These services are globally scoped to the project unless otherwise defined, so any component can inject them and use the service.

What is the difference between ServletConfig and ServletContext?

ServletConfig is used to pass configuration to a servlet. Every servlet has its own ServletConfig object, and the servlet container is responsible for instantiating the object.ServletContext provides access to web application variables to the servlet. The ServletContext is unique object within the servlet container and is available to all the servlets in the web application

Explain why it is important that AJAX is asynchronous

So that the page continues to be processed and handled replies if and when it arrives

If using Java-class configuration, what is the default name given to a bean? How can you change this?

Spring @Bean annotation indicates that a method produces a bean to be managed by the Spring container. The default bean name is the method name. You change this by assigning a value to name inside the @Bean annotation. E.G: @Bean(name = "aName")

What type of aspect weaving is supported by Spring AOP?

Spring AOP, like other pure Java AOP frameworks, performs weaving at runtime only.

What is Spring Boot?

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.The main goal of the Spring Boot framework is to reduce overall development time and increase efficiency by having a default setup for unit and integration tests. If you want to get started quickly with your Java application, you can easily accept all defaults and avoid the XML configuration completely.

What is Spring Data JPA?

Spring Data JPA is part of the larger Spring Data family. It makes it easier to implement JPA based repositories. JPA handles most of the complexity of JDBC-based database access and object relational mappings. Spring Data reduces the amount of boilerplate code required by JPA

Springs origin story

Spring came into existence somewhere in 2003 at a time when Java Enterprise Edition was evolving fast and developing an enterprise application was exciting but nonetheless tedious!Spring started out as an Inversion of Control (IoC) container for Java. We still relate Spring mostly to it and in fact, it forms the core of the framework and other projects that have been developed on top of it.- OR - It began with the forging of the Great Frameworks. Three were given to the Elves, immortal, wisest and fairest of all beings. Seven to the Dwarf-Lords, great miners and craftsmen of the mountain halls. And nine, nine frameworks were gifted to the race of Men, who above all else desire power. For within these frameworks was bound the strength and the will to govern each race. But they were all of them deceived, for another framework was made. Deep in the land of Australia, in the Fires of Sydney, the Dark Lord Rod Johnson forged a master framework, and into this framework he poured his cruelty, his malice and his will to dominate all life.One framework to rule them all, Spring

Why use Spring Framework?

Spring framework is divided into modules which makes it really easy to pick and choose in parts to use in any application:-Core: Provides core features like DI (Dependency Injection), Internationalisation, Validation, and AOP (Aspect Oriented Programming)-Data Access: Supports data access through JTA (Java Transaction API), JPA (Java Persistence API), and JDBC (Java Database Connectivity)-Web: Supports both Servlet API (Spring MVC) and of recently Reactive API (Spring WebFlux), and additionally supports WebSockets, STOMP, and WebClient-Integration: Supports integration to Enterprise Java through JMS (Java Message Service), JMX (Java Management Extension), and RMI (Remote Method Invocation)-Testing: Wide support for unit and integration testing through Mock Objects, Test Fixtures, Context Management, and CachingBut what makes Spring much more valuable is a strong ecosystem that has grown around it over the years and that continues to evolve actively. These are structured as Spring projects which are developed on top of the Spring framework.-Boot: Provides us with a set of highly opinionated but extensible template for creating various projects based on Spring in almost no time. It makes it really easy to create standalone Spring applications with embedded Tomcat or a similar container.-Cloud: Provides support to easily develop some of the common distributed system patterns like service discovery, circuit breaker, and API gateway. It helps us cut down the effort to deploy such boilerplate patterns in local, remote or even managed platforms.-Security: Provides a robust mechanism to develop authentication and authorization for projects based on Spring in a highly customizable manner. With minimal declarative support, we get protection against common attacks like session fixation, click-jacking, and cross-site request forgery.-Mobile: Provides capabilities to detect the device and adapt the application behavior accordingly. Additionally, supports device-aware view management for optimal user experience, site preference management, and site switcher.-Batch: Provides a lightweight framework for developing batch applications for enterprise systems like data archival. Has intuitive support for scheduling, restart, skipping, collecting metrics, and logging. Additionally, supports scaling up for high-volume jobs through optimization and partitioning.

What are forms of dependency injection supported by Spring?

Spring supports Constructor-Based Dependency Injection, Setter-Based Dependency Injection, and Field-Level Dependency Injection.

What is the difference between Thread#run and Thread#start?

Start() creates a new thread and the run method is then executed on the newly created thread. No new thread is created when run is called instead the run method is executed on the calling thread itself. While start can only be called once, run may be called several times.

Give the syntax for template literals / string interpolation

String interpolation is replacing placeholders with values in a string.The javascript version of string interpolation - Template literals allow us to put expressions inside of a string -'string text ${expression} rest of text'

What are the different types of data binding supported by Angular?

String interpolation{{ }}, Property binding[], Event binding()and Two-Way binding[()]

What are examples of structural directives?

Structural directives are directives that are used to create and destory DOM elements. NgIf, NgFor and NgSwitch are examples of built in structural directives

What is SQL?

Structured Query Language, a standard language for storing, manipulating, and retrieving data in datbases.

What transport layer protocol is HTTP/1.1 transmitted over?

TCP the transmission control protocol primarily (though udp can be used it just sucks)

What are some different inheritance strategies?

TYPES??- Single-Multilevel-Heirarchical-Multiple(not provided in Java for classes)-Hybrid(not provided in Java for classes)

What's the difference between using reactive and template-driven forms? How would you setup each?

Template driven approach to forms is used when you need to develop static forms. The structure and logic of the form is fixed. Reactive driven approach to forms is where the structure and logic of forms are mainly written in TypeScript. It can easily handle the data when we have dynamic fields, repetitive fields in our form. The exchange of data from HTML to TypeScript is performed by passing the form's value property from HTML to TypeScript. The advantage of Template-driven forms are they are easier to create, suitable for simple scenarios, have less component code, the form structure and logic is mainly implemented in HTML, use pure web standards (like required is used to make the input field mandatory), has one-way and two-way binding, and is similar to Angular 1. The disadvantages of Template-driven forms are unit testing is challenging, have limited capabilities to implement dynamic aspects like the variable number of fields, repetitive fields, etc, and are not good for application with complex forms. The advantages of Reactive forms are form definition and logic is mainly implemented in TypeScript, provide full control of form value updates and form validation, suitable for creation of forms with dynamic structure at runtime, support implmeneted of custom form validation, most interactions occur in the component file, handle any complex scenarios, and are easier to unit test. The disadvantages of Reactive forms are requiring more coding, needing a lot of practice to take advantage of its flexibility, and are more difficult to understand and to maintain. Example of template driven form: https://angular.io/guide/forms Example of reactive driven form: https://angular.io/guide/reactive-forms

When would a server send you a 307 status code?

Temporary Redirect

What is the difference between == and ===? Which one allows for type coercion?

The === operator is strict equality evauation. == will attempt to do type conversion.

What is the difference between @RequestParam and @PathVariable?

The @RequestParam is used to extract query parameters while @PathVariable is used to extract data right from the URI

What is the DispatcherServlet and what is it used for?

The DispatcherServlet is an actual Servlet (it inherits from the HttpServlet base class), and as such is declared in the web.xml of your web application. You need to map requests that you want the DispatcherServlet to handle, by using a URL mapping in the same web.xml file.

What are event listeners? What are some events we can listen for? What are some different ways of setting event listeners?

The EventTarget method addEventListener sets up a function that will be called whenever the specified event is delivered to the target. Common targets are Element, Document, and window, but the target may be any object that supports events (such as XMLHttpRequest)Some events are mouseover, click, and mouseout.document.getElementById("myBtn").addEventListener("click", someFunction);

What are some differences between GET and POST requests?

The GET and POST are two different types of HTTP requests. GET is used for viewing something, without changing it, while POST is used for changing something. For example, a search page should use GET to get data while a form that changes your password should use POST .

What is the purpose of the GROUP BY clause?

The GROUP BY clause groups rows that have the same values into summary rows. It is often used with aggregate functions to group the result set by one or more columns.

What is the purpose of the HttpClientModule?

The HttpClientModule can be imported in the AppModule to allow for HttpClient to be injected within components and services within the application. The HttpClient allows for the front end to communicate over HTTP to a back end API to download or upload data, and access other back end services.

What is the relationship between Hibernate and JPA?

The Java Persistence API is the overarching java framework for persisting objects to/from a databse. Hibernate is an implementation of the Java persistence api and actually defines how the JPA interface works under the hood.

What does the volatile keyword mean in Java?

The Java volatile keyword is used to mark a Java variable as "being stored in main memory". More precisely that means, that every read of a volatile variable will be read from the computer's main memory, and not from the CPU cache, and that every write to a volatile variable will be written to main memory, and not just to the CPU cache.

What is the role of the ObjectMapper class from the Jackson API?

The ObjectMapper is used to serialize Java objects into JSON, and deserialize JSON strings into Java objects

Describe the Open/Closed Principal

The Open/Closed Principal states that classes should be open for extension and closed for modification. This means that additional functionality for a class should be implemented through a child class, not by modifying the original class.

What is a Payload?

The Request Payload - or to be more precise: payload body of a HTTP Request - is the data normally send by a POST or PUT Request. It's the part after the headers and the CRLF of a HTTP Request.

What is the purpose of the RestTemplate class within Spring?

The RestTemplate is the central Spring class for client-side HTTP access. Conceptually, it is very similar to the JdbcTemplate, JmsTemplate, and the various other templates found in the Spring Framework and other portfolio projects.Depreciated: As of Spring Framework 5, alongside the WebFlux stack, Spring introduced a new HTTP client called WebClient.

What are some problems that exist with the Runnable pattern for creating Thread objects?

The Runnable pattern does not allow for anything to be returned, and does not allow for exception handling.

Describe the Single Responsibility Principal

The Single Responsibility Principal states that each class should only have a single responsibility. You should not have a class (or file) that does everything.

What are some differences between the ApplicationContext and the BeanFactory in Spring?

The Spring Framework comes with two IOC containers - BeanFactory and ApplicationContext. The BeanFactory is the most basic version of IOC containers, and the ApplicationContext extends the features of BeanFactory.BeanFactory loads beans on-demand(Lazy), while ApplicationContext loads all beans at startup(Eager). Thus, BeanFactory is lightweight as compared to ApplicationContext.ApplicationContext supports almost all types of bean scopes, but the BeanFactory only supports two scopes — Singleton and Prototype. Therefore, it's always preferable to use ApplicationContext when building complex enterprise applications.The ApplicationContext includes all functionality of the BeanFactory, along with additional functionality.The BeanFactory features bean instantiation/wiring.The ApplicationContext has bean instantiation/wiring, ApplicationEvent publication, and convenient MessageSource access.

Describe the purpose of the Spring framework.

The Spring Framework is an application framework and inversion of control container for the Java platform. One of the core functions of the Spring Framework is dependency injection, which is accomplished through the use of a inversion of control container, known as the ApplicationContext.

What is Spring MVC? How is it enabled for use within a Spring application?

The Spring Web MVC framework provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.The Spring Web model-view-controller (MVC) framework is designed around a DispatcherServlet that handles all the HTTP requests and responses. In a nutshell, the DispatcherServlet acts as the main controller to route requests to their intended destination.

What about an array?

The array data structure returns an 'object' as its type.

What information is provided to the configuration of the SessionFactory bean within Spring ORM?

The base package to scan for entities in, the SQL dialect, whether or not to show SQL statements in the console, and Hibernates mapping to DDL (HBM2DDL: Whether to update, create, create drop, validate, or none)

What is a primary key?

Unique (in that table), non-null candidate key. A column that cannot have repeating values.

What is a repository interface?

The central interface in Spring Data repository abstraction is Repository. This interface acts primarily as a marker interface to capture the types to work with and help us discover interfaces that extends teh CrudRepository interface. The CrudRepository provides sophisticated CRUD functionality for the entity class that is being managed

What is referential integrity?

The concepts of enforcing data relationships and having no orphaned records.

Why is it considered to be bad practice to create Java Threads on-demand, using new Thread()?

The difference between an Executor and a Thread class is that the former decouples a task (the code which needs to be executed in parallel) from execution, while in the case of a Thread, both task and execution are tightly coupled.

What is the happens-before problem?

The happens-before relationship is a guarantee that the action performed by one thread is visible to another action in a different thread. To guarantee that the thread executing action Y can see the results of action X (whether or not X and Y occur in different threads), there must be a happens-before relationship between X and Y.

What is the purpose and contents of the hibernate.cfg.xml file?

The hibernate.cfg.xml file is by default places under src/main/resources. The purpose of the file is to specify the mapping information that defines how your Java classes relate to the database tables and also a set of configuration settings relatedto the database. The file contains the jdbc connection url, DB user credentials, JDBC driver class, and hibernate dialect (this property makes Hibernate generate the apporiate SQL(PostrgeSQL) for the chosen database).

How many times are each of the lifecycle methods called in the lifetime of a single servlet?

The init() method is called only once to load the Servlet.The service() method is called whenever the initiated servlet is needed to handle requests coming from the client (web browsers) and to send a response back to the client, and so can be called many times in the lifetime of a servlet.The destroy() method is called once to end the life cycle of a servlet.

What is the difference between concurrency and parallelism?

The main difference between concurrency and parallelism is that with concurrency there are two or more tasks starting, running, and completing in overlapping time periods without ever running at the same instant, with parallelism multiple tasks can run at the same instant, using for example a multicore

What is the difference between synchronous and asynchronous?

The main difference between synchronous and asynchronous calls in java is that, in synchronous calls, the code execution waits for the event before continuing while asynchronous calls do not block the program from the code execution When you execute something synchronously, you wait for it to finish before moving on to another task. When you execute something asynchronously, you can move on to another task before it finishes.

What are some differences between Angular and AngularJS?

The main difference is Angular uses TypeScript and AngularJS uses Javascript. Also, Angular JS does not use dependency injection while Angular does use dependency injection

Do simple Java applications only run a single thread (the main thread)?

The main method is invoked on the main thread, along with all following methods in a single-threaded application. There are also daemon threads that run in the background, by default the garbage collector is run on such a thread.

What is the difference between PUT and PATCH requests?

The only similarity between the two is that they can both be used to update resources in a given location.When making a PUT request, the enclosed entity is viewed as the modified version of the resource saved on the original server, and the client is requesting to replace it. However, with PATCH, the enclosed entity boasts a set of instructions that describe how a resource stored on the original server should be partially modified to create a new version.

Describe the producer/consumer problem.

The producer's job is to generate data and put it into the buffer, the consumer is removing it from the buffer one piece at the time. The problem is to make sure that the producer won't try to add data into the buffer if it's full and the consumer wont remove data from an empty buffer.

What is the difference between Session and SessionFactory?

The session factory is an interface available in the hibernate package which extends referenceable and serializable. It is a threadsafe and immutable way of creating Sessions. Session is an interface that extends Serializable and is the main runtime interface between a Java application and Hibernate. Session is the central API class abstracting the notion of a persistence service. Session is not thread-safe

What is the Spring Boot starter POM? Why is it useful?

The spring-boot-starter-parent dependency is the parent POM providing dependency and plugin management for Spring Boot-based applications. It contains the default versions of Java to use, the default versions of dependencies that Spring Boot uses, and the default configuration of the Maven plugins.

What are the sub-languages of SQL?

The sub-languages of SQL are DML(Data Manipulation Language), DDL(Data Definition Language), DCL(Data Control Language), TCL(Transaction Control Language), and DQL(Data Query Language).

What are common cloud delivery strategies?

The three common cloud delivery strategies is Infrastructure as a Service (IaaS), Platform as a Service (Paas), and Software as a Service (SaaS).

Name the protocol which is used by RESTful web services.

The underlying protocol for REST is HTTP.

What version of Spring are you comfortable working with? Do you know the latest major version released?

The version of Spring is 5.3.4. The latest stable version of Spring is 5.3.4.We are using Spring Boot 2.4.3.

What is the web.xml file used for in a Java web application?

The web.xml file is used as a Deployment Descriptor. It describes how a component, module or application (like a web or enterprise application) should be deployed. It directs a deployment tool to deploy a module or application with specific container options, security settings and describes specific configuration requirements.-Even if you use annotations to describe your deployment mechanism you still need a web.xml file present (could be empty in that case)

What are the normal forms, and to what level do we usually comply to?

There are 10 normal forms, from Unnormalized Form (UNF) to Domain/key Normal Form (DKNF). We usually comply to 3rd Normal Form, which states you need to follow 1st Normal Form (The information is stored in a relational table and each column contains atomic values, and there are no repeating groups of columns. Also, each record has a unique identifier), 2nd Normal Form(Follow the 1st normal form and all of the columns in the table must depend on the entire primary key of that table. If it only depends on part of a composite primary key, it is breaking 2nd normal form), and 3rd normal form (must comply with 1st normal form and 2nd normal form and no non key is dependent on another non key field (no transitive dependency)).

What are the states of a Thread in Java?

There are 6 main states : New, Runnable, Timed Waiting, Waiting, Blocked, and Terminated Runnable state can be further broken down into Ready and Running

What are the collection types in Hibernate?

There are five collection types in hibernate used for one-to-many relationship mappings.Bag, Set, List, Array, Map

What are the properties of a transaction?

There are four key properties of a transaction: ACID (Atomicity, consistency, isolation, and durability).

What are the Spring stereotype annotations?

These annotations clearly indicate typical behavior we'd see in a project structure. These annotations are: Component (most generic), Controller, Service, and Repo. They all help to abstract away from expected functionality (JDBC for repo, servlets for controller, etc.) It is Spring's way of knowing what is being abstracted away.When a class is annotated with one of the Stereotypes Spring will automatically register them in the application context. This makes the class available for dependency injection in other classes and this become vital to building out our applications.

What is interpolation? Is it different than property binding?

They are very similar: String interpolation is a one-way binding that takes the name of a component's property and is placed within double curly braces, and Angular will replace the name of the property with the corresponding value that the property has. Example syntax is {{ <component property name> }}. These two are similar, but string interpolation should be used with string values, while property binding should be used with non-string expressions, such as boolean values

How is dependency injection achieved within the Spring framework?

This can be configured using annotations (@Autowired) or in an XML file (XMLBeanFactory). The Bean Factory then creates the new objects for injection, generally as Singletons unless otherwise specified.

What does a 300-level status code generally convey?

This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection. Aka request has to see other servers

What does a 400-level status code generally convey?

This class of status code is intended for situations in which the error seems to have been caused by the client. Aka request failed because of USER ERROR :p Aka Error exists between chair and keyboard (lol)

What does a 200-level status code generally convey?

This class of status codes indicates the action requested by the client was received, understood, and accepted Aka request finished

What is UDP?

UDP (User Datagram Protocol) is a Transport Layer protocol. UDP is a part of the Internet Protocol suite, referred to as UDP/IP suite. Unlike TCP, it is an unreliable and connectionless protocol but much faster because of this. So there is no need to establish a connection prior to data transfer

What tags would you use in the web.xml to configure a servlet?

To configure a servlet, it's done using the <servlet> element. Within the <servlet> and </servlet>, give the servlet a name using <servlet-name> and the class name of the servlet using <servlet-class>To map the servlet to a URL or URL pattern, it's done with <servlet-mapping>. With in servlet-mapping, you need to give it a name using <servlet-name> and an url pattern using <url-pattern>

What is the purpose of @Query within Spring Data JPA?

To define the String value of a method in a Spring Repository that Spring cannot generate itself (Spring Data does not recognize the method name as keywords). Check out ------->

What are connectors?

Tomcats links to the web that allow catalina(tomcat) to receive requests, pass them to the right web app and respond through the same connector.

What keywords are associated with TCL?

Transaction Control Language (COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION) - These statements manage changes made by DML (Database Manipulation Language) statements.

How does transaction management work in hibernate?

Transaction management is very easy in hibernate because most of the operations are not permitted outside of a transaction. So after getting the session from SessionFactory, we can call session beginTransaction() to start the transaction. This method returns the Transaction reference that we can use later on to either commit or rollback the transaction.Any exception thrown by session methods automatically rollback the transaction.

What is TCP?

Transmission control protocol that works at the transport layer to provide a networking implementation for the internet protocol. Basically, TCP is the protocol used between two computers to establish a secure transmission. You send a request, wait for acknowledgment then send a piece of info and wait for acknowledgement etc till you're done. It is different from UDP. The user datagram protocol that basically takes your information splits it up and sends it out all at once hoping the receiver gets enough to make sense of it.

What is TLS?

Transport Layer Security, an encryption protocol that protects internet communication by encrypting the data that is being transferred.

Under what circumstances can two result sets be unioned?

Two result sets can be unioned as long as they contain their own unique records. This is because using union removes duplicate records.

What is two-way binding? Describe the syntax and name the directive required

Two-way binding is the combination of property and event binding, and is a continious synchronization of data from the view to the component, and from the component to the view. This means that any changes made from the component side should display on the view side, and any changes made on the view side should be updated within the component. This is accomplished with the NgModel directive, and has a combination of the property and event binding syntax. Within the tag, the syntax is [(NgModel)] = "username". The FormsModule library needs to be imported into the app.module.ts file in order to use two-way binding

How does TypeScript relate to JavaScript? What are the major benefits of using it over JavaScript?

TypeScript is a superset of JavaScript, anywhere that JavaScript can be used, TypeScript can be substitued in. TypeScript can recognize JavaScript code and any JavaScript libraries, as well as be called from JavaScript code. The main differences between the two is TypeScript allows for strict typing of variables, Object Oriented features, as well as poitning out errors that can keep the code from correctly rendering and running on the browser.

What network protocol is HTTP/3.0 based on?

UDP

How can you create a bidirectional mapping between two related entities using JPA annotations?

Use a OneToMany mapping on a noncolumn field that is a different entity/class and have the other column have a manytoOne relationship with that table.

Explain the template literal syntax

Use backticks, ``, instead of quotation marks. Inside the backticks, type ${variable}

How can you establish access HTTP session information within a Java servlet?

Use getSession() method on the HttpServletRequest to retrieve the HttpSession object- Can use getAttribute() and setAttribute() methods on the HttpSession to retrieve and modify attribute information

What is property binding?

Use square brackets on html property name and the value can correspond to variables in the component typescript file. Can monitor and receive data from corresponding typescript componnent file.Ex. <button [disabled]="<disabled-variable-in-typescript-file>">Click me</button>

How can you create a many-to-many relationship, using a junction table, with JPA annotations?

Use the @JoinTable and @ManyToMany annotations to indicate the many-to-many relationship. Add the name of the joint table and column names within the joint table to the @JoinTable annotation (name, joinColumn and inverseJoinColumn - the latter two use the @JoinColumn annotation).https://thorben-janssen.com/hibernate-tips-map-bidirectional-many-many-association/

How can you sort the entries in your result set by a particular column?

Use the GROUP BY statement to group the result set by one or more columns. He could also be talking about ORDER BY, which is used to sort the result set in ascending or descending order by a particular column or multiple columns. Don't know which he wants.

How would you run your unit tests for an Angular project?

Use the generated spec.ts files to write unit tests for your services and components with Jasmine, and execute the tests using Karma (npm test)

How can you select all of the entries in a table (ex: Users) including all columns?

Use the symbol * (SELECT * FROM Users)

When should you use an HTTP PATCH request?

Used to apply partial modifications to a resource

When should you use an HTTP DELETE request?

Used to delete a resource

What is a WHERE clause used for?

Used to filter records based on a specific condition.

When would an HTTP OPTIONS request be sent?

Used to see what communication options are available for a target - I thinkkkk its for multimedia content to see if you can stream it and how you can stream it etc.

How would you go about testing a Spring MVC controller?

Using MockMVC Object

How would you submit a form using JS?

Using the submit methoddocument.getElementById("myForm").submit();

What is function and variable hoisting?

Variables and functions can be used before they've been declared - IE JS reads in the whole file before execution it sounds like. Variables declared with the var keyword or no access keyword can be accessed outside the scope of where they were declared. NOTE: Hoisting is the behavior of JS to bring all declarations to the top of the current scope (but NOT initializations).

What are the REST Constraints?

Violation of any non optional Constraint results in an application that is not striclty RESTful-Uniform Interface-Stateless-Cacheable-Client-Server-Layered System-Code on Demand (optional)

How do you implement relationships in hibernate?

We can easily implement one-to-one, one-to-many and many-to-many relationships in hibernate. It can be done using JPA annotations as well as XML based configurations.

What is aspect weaving?

Weaving is the process of linking aspects with other application types or objects to create an advised object. Weaving can be done at compile time, at load time, or at runtime.

How does cahcing in RESTful APIs work?

When a consumer requests a resource representation, the request goes through a cache or a series of caches (local cache, proxy cache, or reverse proxy) toward the service hosting the resource. If any of the caches along the request path has a fresh copy of the requested representation, it uses that copy to satisfy the request. If none of the caches can satisfy the request, the request travels to the service (or origin server as it is formally known).By using HTTP headers, an origin server indicates whether a response can be cached and, if so, by whom, and for how long. Caches along the response path can take a copy of a response, but only if the caching metadata allows them to do so.

What is sub-type polymorphism?

When a name denotes instances of many different classes related by some common superclass

What is parametric polymorphism?

When a type can be declared abstractly so that aspects of its implementation can be declared at runtime through the use of a parameterized type

What is cascading and what are difference types of cascading?

When we have relationship between entities, then we need to define how the different operations will affect the other entity. This is done by cascading and there are different types of itNone: No Cascading, it's not a type but when we don't define any cascading then no operations in parent affects the child.ALL: Cascades save, delete, update, evict, lock, replicate, merge, persist. Basically everythingSAVE_UPDATE: Cascades save and update, available only in hibernate.DELETE: Corresponds to the Hibernate native DELETE action, only in hibernate.DETATCH, MERGE, PERSIST, REFRESH and REMOVE - for similar operationsLOCK: Corresponds to the Hibernate native LOCK action.REPLICATE: Corresponds to the Hibernate native REPLICATE action.

Define Inheritance

When you create a child class by deriving from another parent class, forming a heirarchy.The child class reuses all fields and methods of the parent class and can implement its own.

When would you use a CallableStatement?

When you want to execute a stored procedure

When should you use an HTTP GET request?

When you want to retrieve a resource

When should you use an HTTP POST request?

When you want to submit new data to add to some resource. Similar to PUT, but cannot overwrite data only add it.

Can you execute native SQL in hibernate?

Yes, Hibernate provides the option to execute native SQL queries through the use of SQLQuery object.

How can you you connect your local machine to your remote EC2 instance?

You can Secure Shell, or SSH into an EC2 instance. The process includes giving the EC2 instance your private key, and a corresponding account name in order to access the instance.

How can you access the query parameters of an incoming HTTP request within a Java servlet?

You can access the query parameters through the ServletRequest object that is passed to a Java servlet when service() is called. The object has methods like getParameterNames() and getParameterValues().Use getParameter() on an HttpServletRequest object to obtain a specific query parameter

What is an exception handler? How would you declare one for use within a controller?

You can add extra (@ExceptionHandler) methods to any controller to specifically handle exceptions thrown by request handling (@RequestMapping) methods in the same controller. Such methods can:Handle exceptions without the @ResponseStatus annotation (typically predefined exceptions that you didn't write)Redirect the user to a dedicated error viewBuild a totally custom error responseHandler methods have flexible signatures so you can pass in obvious servlet-related objects such as HttpServletRequest, HttpServletResponse, HttpSession and/or Principle.

What are some ways that a bean registry can be provided to Spring?

You can provide the bean registry using XML, or you can do it programmatically. For example, creating @Bean annotations over objects made within an AppConfig class, and then calling AnnotationConfigAppContext is an example of bean registry using Annotations. XML can be used by using a <bean> tag to implement.

What are some ways you can secure S3 buckets?

You can secure data in transit to and from S3 buckets by using HTTPS.S3 also has ways of securing data in it:S3 data is automatically encryptedYou can use SS3 with Amazon S3 Key Management (SSE-SE) so S3 manages keys and encryptionSSE with Customer-Provided Keys (SSE-C), where a user provides a key to encrypt upon writing, and a key for decrypting upon retrieval. Amazon discards keys immediately after encryption/decryptionSSE with AWS Key Management Service (SSE-KMS) where S3 encrypts the data using keys managed by the user, but stored in the KMS. KMS provides an audit trail so users can see who used a key to access which object and when.

What are some ways that you can secure your EC2 instance?

You can set up AccessCredentials, with an access key and a secret key to authenticate users when accessing AWS APIs. The access key identifies the requester, the secret key signs requests.You can set up Key Pairs, which is a public key and a private key used to authenticate when accessing an EC2 instance. The public key is injected by AWS into the instance via its metadata, the private key is kept by the user.Another way is through IAM roles. These can be used to pass access credentials to EC2 instances

List some ways of querying the DOM for elements

You can use the querySelector to select a class, ID, or element. You can also use getElementByID

What are some ways you can use functions in JS?

You define functions with the function keyword and use return to return values and cut execution. To use the function you can invoke it like normal with () or use it as variable value like let x = yourFunc();

What are some methods on the event object and what do they do?

createEvent() : creates a new eventstopPropagation(): prevents further propagation of an event during event flowcomposedPath(): returns the event's pathcurrentTarget()/target(): element whose event listener triggered eventtimestamp(): time event propogatedtype(): name of the event

What are the properties of the metadata object passed to the @NgModule decorator?

declarations, imports, exports, providers, bootstrap (only in root module). This metadata describes how to compile a component's template and how to create an injector at runtime

What is ad hoc polymorphism?

defines a common interface for an arbitrary set of individually specified types.

What Session methods can be used to move from the persistent state to the detached state?

detach(), close(), clear(), evict()

What are some different types of pointcut designators?

execution - for matching method execution join points. This is the most widely used PCD.within - for matching methods of classes within certain types e.g. classes within a package.@within - for matching to join points within types (target object class) that have the given annotation.this - for matching to join points (the execution of methods) where the bean reference (Spring AOP proxy) is an instance of the given type.target - for matching with the target object of the specific instance type.@target - for matching with the target object annotated with a specific annotation.args - for matching with methods where its arguments are of a specific type.@args - for matching with methods where its arguments are annotated with a specific annotation.@annotation - for matching to join points where the subject (method) of the Joinpoint has the given annotation.bean (idOrNameOfBean) - This PCD lets you limit the matching of join points to a particular named Spring bean or to a set of named Spring beans (when using wildcards).

What will happen when I try to run this code: console.log(0.1+0.2==0.3) ?

false - computers have trouble going from base 10 to base 2 and back again

What is the difference between for-of and for-in loops?

for in loops over enumerable property names of an object. for of uses an object specific iterator and loops over the vlaues generated by that. Use for of with with arrays and string and use for in with objects.

How would you set default values for parameters to a function?

function exampleFunction(a, b=1) , b=1 is a default value of 1. This is the ES6 example.

What is the difference between Hibernate get() and load() method?

get() is eager, load() is lazy. Get() will actually return an initialized object. Load() will give you a proxy of the object you want. It will load in the data needed once another method is called on the object.

What is a Promise?

is an object that may produce a single value some time in the future: either a resolved value, or a reason that it's not resolved

How can you make sure that some code executes after another thread runs its logic?

join()?? Or by providing them to an ExecutorService in the order to be executed

Use the object literal syntax to create an object with some properties

let wezleysobject = { name: "wezley", occupation: "teacher", level: "9001"}

How can you create a new component on the command line using the Angular CLI?

ng generate component <component-name>(can be shortened to `ng g c <component-name>`)

How can you create a new service on the command line using the Angular CLI?

ng generate service <service-name>(can be shortened to `ng g s <service-name>`)

How would you create a new Angular project?

ng new <project-name>

How can you create a new Angular project on the command line using the Angular CLI?

ng new <project-name>(can be shortened to `ng n <project-name>`)

Where does the ngModel directive come from?

ngModel comes from the @angular/form package

What are the autowiring modes Spring uses to resolve autowired dependencies?

no (default)- no autowiring. Bean references must be defined by ref elementsbyType- lets a property be autowired if exactly one bean of the property type exists in the container- if more than one exists, a fatal exception is thrown, which indicates that you may not use byType autowiring for that bean- if there are no matching beans, nothing happens (the property is not set)byName- autowiring by property name. Spring looks for a bean with the same name as the property that needs to be autowiredconstructor- analogous to byType but applies to constructor arguments- if there is not exactly one bean of the constructor argument type in the container, a fatal error is raised.autodetect-Spring tried to autowire by constructor. If this fails it tries to autowire by using type.@Qualifier- Spring-managed classes can be annotated with @Qualifier which can be passed a String as an argument. This String value will be used as an identifier, and allows for the use of the qualifier annotation in conjuction with setter injection to locate the appropriate bean to wire in (Note that the use of @Qualifier with constructor injection is not supported).

What is the difference between Object#notify and Object#notifyAll?

notify() will wake up one of the threads waiting on the current monitor while notifyall() will wake up all threads that are waiting on an object's monitor

Explain the relevance of npm to Angular projects. Which file does npm use to track dependencies?

npm is used to install the angular command line interface (CLI) that we use to create ng projects and their components, services etc.I think package.json is used to track dependencies for node.js

List the data types of TypeScript

number, boolean, string, void, null, undefined, never, any

Explain the async/await keywords. Why is it preferred to use this instead of .then() methods?

put async keyword in front of a function to turn it into an async function, a function that knows how to expect the possibility of the await keyword being used to invoke asyncronous code. await can be put in front of any async promise-based function to pasuse your code on that line until the promise fulfills, then return the resulting value. await suspends executing of the current function while .then(anything) continues execution of the current function after adding anything to the callback chain.

What Session methods can be used to move from the transient state to the persistent state?

save(), saveOrUpdate(), persist()

How would you set some code to run at a specified time in the future? What about repeatedly?

setTimeout schedules function to be run once after at least the given interval has expired (may take longer). setInterval starts running a function after at least the given interval and runs it repeatedly

What solutions exist for continuous inspection that you are aware of?

sonarcloud.io

What are some different types of polymorphism?

static: implementation determined at compile time. Several methods present in a class having the same name but different types/order/number of parameters (Overloading).dynamic: implementation determined at run time. Suppose a subclass overrides a particular method of the superclass (Overriding).

What is the difference between @RequestBody and @ResponseBody?

the @RequestBody annotation allows us to retrieve the request's body and automatically convert it to Java ObjectTo put this in simple words, @ResponseBody tell Spring framework to serialize a return object into JSON or XML and send this information back as part of the HTTPResponse.

How would you insert a new element into the DOM?

use document.createElement('elementsymbol suc as p or h1')

What is the difference between var, let, and const keywords?

var can be redeclared and updated, always function scoped, can be hoisted and is inited as undefined (likely tied to the fact that they are globally scoped)let can be updated not redeclared, is block scoped, and can be hoisted but will not be initilized (cannot be used until initialized)const canot be updated or redeclared, is block scoped and can be hoisted but will not be initialized (cannot be used until initialized)

What is the usage of the Object#wait and Object#notify methods?

wait() suspends a thread sending it to WAITING state and notify() wakes it back up


Set pelajaran terkait

Psychiatric-Mental Health Practice Exam HESI

View Set

MI Life Insurance Certificate Chapter 1

View Set

Chapter 13 Administration and Risk Management Final

View Set

CSE 643 - Computer Security - SQL Injection

View Set

Saunders Unit II Issues in Nursing Q 13-25

View Set

Educational Psychology Final Study Guide

View Set

Fundamentals of Nursing - Ch 23 Legal Implications in Nursing Practice

View Set