interview

Proficiency
in using Java language for object-oriented programming, good programming habits, familiar with common Java APIs, including collection framework, multi-threading (concurrent programming), I/O (NIO), Socket, JDBC, XML, reflection Wait.
Familiar with Java Web development based on JSP and Servlet, have an in-depth understanding of the working principle and life cycle of Servlet and JSP, proficient in using JSTL and EL to write scriptless dynamic pages, using Web components such as listeners, filters, and MVC architecture pattern Experience doing Java web project development.
Have an in-depth understanding of Spring's IoC container and AOP principles, proficient in using Spring framework to manage various Web components and their dependencies, proficient in using Spring to manage transactions, logs, security, etc., and using Spring MVC as a presentation layer technology And the experience of using the persistence support provided by Spring for Web project development, familiar with Spring's integration of other frameworks.
Skilled in using Hibernate, MyBatis and other ORM frameworks, familiar with the core APIs of Hibernate and MyBatis, and have a deep understanding of Hibernate's association mapping, inheritance mapping, component mapping, caching mechanism, transaction management, and performance tuning.
Familiar with HTML, CSS and JavaScript for web front-end development, familiar with jQuery and Bootstrap, have an in-depth understanding of the application of Ajax technology in web projects, and use front-end MVC framework (AngularJS) and JavaScript template engine (HandleBars) for project development Experience.
Familiar with commonly used relational database products (MySQL, Oracle), proficient in using SQL and PL/SQL for database programming.
Familiar with object-oriented design principles, have in-depth understanding of GoF design patterns and enterprise application architecture patterns and relevant experience in actual development, and be proficient in using UML for object-oriented analysis and design, including TDD (test-driven development) and DDD (domain). drive design).
Familiar with the use of web servers and application servers such as Apache, NginX, Tomcat, WildFly, Weblogic, etc., and familiar with the configuration of various server integration, clustering and load balancing.
Proficient in using product prototyping tool Axure, proficient in using design modeling tools PowerDesigner and Enterprise Architect, proficient in using Java development environment Eclipse and IntelliJ, proficient in using front-end development environment WebStorm, proficient in using software version control tools SVN and Git, proficient in using The use of project build and management tools Maven and Gradle.

 

1. Responsible for the module design, development and delivery of the R&D company's application software
2. Responsible for coding, unit testing
3. Detailed design according to functional components
4. Review the code of other software engineers
5. Participate in the learning and training of new knowledge
6. Fix program BUG
7. Participate in the review of requirements change related to its business
8. Complete other matters assigned by superiors
9. Write technical design documents

 

 


Why not go away? ? I don't understand Spring's transaction mechanism. ! !
By default spring transactions are only rolled back when an uncaught runtimeexcetpion occurs.
Spring aop exception capture principle: The intercepted method needs to throw an exception explicitly, and cannot be processed in any way, so that the aop proxy can catch the exception of the method and roll back. By default, aop only captures the exception of runtimeexception, but it can Catch specific exceptions and roll back through

configuration .
In other words, do not use try catch in service methods or add throw new runtimeexcetpion() at the end of catch, so that program exceptions can be caught and rolled back by aop
. Solution:
Solution 1. For example, when the service layer handles transactions, the methods in the service do not do exception capture, or add a throw new RuntimeException() statement at the end of the catch statement, so that aop catches the exception and then rolls back, and in the upper layer of the service (webservice client side, view layer action) to continue to capture this exception and handle the
solution 2. Add in the catch statement of the service layer method: TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); statement, roll back manually, so that the upper layer does not need to handle the exception ( Current project practice)






Factory pattern application scenario

4. Application scenarios

getInstance method of Calendar in JDK

Obtaining the Connection object in JDBC getConnection

SessionFactory creates Session in Hibernate

When the IOC container in spring creates and manages bean objects, it is also a factory pattern

DocumentBuilderFactory when XML parsing creates parser object

The newInstance method of the Class object in reflection.

 



RMI remote call steps:

1. The client object calls a method on the client helper object

2. The client auxiliary object packages the call information (variables, method names) and sends it to the server auxiliary object through the network

3. The server auxiliary object unpacks the information sent by the client auxiliary object, and finds out the method that is actually called and the object where the method is located.

4. Call the real method on the real service object and return the result to the server auxiliary object

5. The server-side auxiliary object packs the result and sends it to the client-side auxiliary object

6. The client auxiliary object unpacks the return value and returns it to the client object

7. The client object gets the return value

Steps 2-6 are completely transparent to the client object

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324889612&siteId=291194637