Java Learning note programmers The most commonly used 20% technical __java

Source: Internet
Author: User
Tags connection pooling message queue redis thread class zookeeper rabbitmq java se
The whole stack development training course in the east this is about to start, the new 0 basic newcomer is not very catch, want to in six months, to find a Java Junior Programmer's work, what knowledge points are must master, what can be now learn to sell. A complete Javaweb project, what are the specific modules, and what technology each module uses.


First common APIs (String,stringbuffer/stringbuilder, etc.)


1. Collection class, Thread class


2.Servlet (rarely written in pure servlet, but you know, because many frameworks are based on servlet encapsulation)


3.json,xml Reading and writing


4. Database access (CRUD, transaction, connection pooling)


5.http Request (HttpClient)


6 other, including common frame, design pattern, object-oriented


The beginner programmer will be able to write the project. The problems encountered later will be much more complicated, relying on the accumulation of various experiences and knowledge.


In addition to the 20% to master what knowledge to grasp. Let's talk about the things I have touched (used).


Java is known for its rich ecosystem of distributed applications, and the decision to escape the cap in distributed systems. Early understanding of some distributed consistency protocol Paxos, raft and so on. Learn the zookeeper principle and use scene (metadata, distributed lock, leadereletion ... etc)
The RPC framework plays an important role in the SOA architecture, so it is good to explore the Dubbo framework of Alibaba, while Netty, Mina and other network libraries
Hadoop series Storm Spark offline \ Real-time computing framework
Elasticsearch\solrcloud distributed Search ELK log related things are more sensitive to these, of course in more scenes using ES is also a lot of
Message Queuing Kafka\metaq RABBITMQ Grace, the author of yesterday's ZEROMQ (not exactly an MQ) chose euthanasia, and may heaven have no pain.
Then there are various basic knowledge, programming language, network aspect, database, data structure and algorithm. Do not think that any one is proficient, dare to say proficient knowledge can have a few.


1. Learn to use ECLIPSE,SVN and other Ides and tools (needless to say, it is mainly to see your work place, for example, we use eclipse you want to use IntelliJ idea can also, but just work certainly a lot do not understand, this time not to do unconventional good, out of question good questions. Of course you're the IDE, big God, please disregard it.


2. Just get in touch with the core work, let me first change the page what, as Web development HTML, CSS, and JavaScript do not have to master, at least need to understand the usage and grammar, although there are front-end engineers, but this is certainly to understand (their own company small project group, Each was forced to fulfill the stack. JavaScript is still very powerful, but at first it doesn't have to be written very deep, many wheels can be used, such as Easyui, as @ Wang said


Will consult the official documentation


Know the use of the Web page embedded, and then the background in the format of the data to the foreground is good.


3. Then began to gradually write back, familiar with the design pattern, if too much too difficult to understand the factory model can first understand, write an interface and then use one or several implementation classes to implement this interface, need to use when the need to determine which implementation class to use. (At first, I don't understand how this is so cumbersome, but since the database of the last project was replaced with MySQL from Oracle, it's really useful.) General project development will use the design pattern, do not understand may not be able to touch the entire project structure, can not.


4. Different companies use the same framework, but struts,spring is still used more, so these two things are better familiar with, or you may not even the whole project structure is not clear, do not say that they write, even change is difficult to start. For example, the project's jump is how to match, which configuration file represents what. (At first I ran the project locally after I run up the home page in which is which document how to enter is not clear t.t, has been looking for index.jsp and then only know the project with Freemarker do, is a FTL file)


5.web project to operate the database work is indispensable, their own projects with no hibernate, the main use is StringBuffer splicing SQL, if engaged in web development, SQL or to be relatively familiar. According to my brother said, SQL so powerful, there is no SQL can not do.




Reminder, you should not use SQL in the database to do too much, the specific solution can refer to the premise of another problem


How many functions need the same batch of data is in the program to traverse the good or SQL database return good. – Programming


But the importance of SQL is self-evident.


6. I feel I do the Web project design advanced algorithm may do a relatively deep will encounter, more is the string and numerical format of the operation, such as the background from the database out to the front how to show how the user input data how to save to the database, so it is best to familiarize yourself with the operation of strings, split Yes, string to float, int or whatever, date format yes what.


If the company has professional operation, server deployment of what to them, if not the best to understand, remote connection Yes, Linux some simple commands yes, Tomcat AH what


Of course, as a Java engineer providing a distributed service interface, you need to be proficient with the following skill points:


1, Java Basic syntax: It is best to occasionally use java8 lambda to simplify code logic, Google's guava library and so on


2, Docker basic use: Today more and more companies choose to deploy services on the Docker, constitute an independent service cloud platform, and Docker operations and resource scheduling allocation is very cool.


3. Message Queuing: Kafka, RABBITMQ, notify, METAMQ, and so on, Message Queuing is very popular as a tool for handling high throughput, regardless of the timely results of the application scenarios. The practical use of the method is message Queue + compensation mechanism.


4, Zookeeper, or ETCD: These are the registry Centers for distributed service delivery services, which enable multiple-service multiple-machine deployments and load balancing.


5, RPC: remote invocation of the scene more and more widely used, especially in the distributed services can not be separated from it. It makes calls between multiple services as simple as invoking a local method. RPC for the implementation of the more extensive use of thrift, protobuffer and so on.


6, Netty: is a high-performance, asynchronous event-driven NIO framework. can provide high performance calls for RPC


7, Git and Maven and other project management and dependency management tools, this is the basis for collaborative development.


8, Redis: Almost forget this must know the skills ... Redis, as a high-performance memory database, basically covers the service cache with large traffic. Of course, memcached a few years ago are mostly used, but the function can be replaced by Redis. In addition to caching, you can provide distributed locking mechanisms.


Recently went to the interview Java East time student finishing:
0, set frame: source code reading, focus on understanding hashmap,arraylist and other common collection classes;
1, and Contract: Understanding Concurrenthashmap Principle, thread pool, asynchronous concurrency, locks;
2, Io/nio;
3, Java SE Foundation: Mainly some basic concepts and grammatical details, such as equals and hashcode function, access modification, etc. 4. SSH Framework: The principles of IoC and AOP, involving the concept of dynamic proxies and reflection;
5, Design pattern: Common will draw UML, for example, freehand masturbate a variety of single cases to achieve, JDK involved in the design model;
6, Socket programming.


Of course, you may not be able to go to these, in general out of these range of knowledge points, in the programming work needed, you will naturally learn, do not have to limit yourself to learn what to work, but these 20% of the basis you must master.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.