关于Java的编程常识,有人会问哪几个是重要的常识点,不知道咱们是否知道呢?给咱们同享一下。
1.JVM相关(包含了各个版其他特性)
关于刚刚触摸Java的人来说,JVM相关的常识纷歧定需求了解很深, 对此里边的概念有一些简略的了解即可。不过关于一个有着3年以上Java经历的资深开发者来说,不会JVM简直是不可承受的。
JVM作为java作业的根底,很难信任关于JVM一点都不了解的人能够把java言语吃得很透。我在面试有逾越3年Java经历的开发者的时分, JVM简直便是一个必问的问题了。当然JVM不是仅有选择技术才调好坏的面试问题,可是能够佐证java开发才调的凹凸。
在JVM这个大类中,我以为需求把握的常识有:
JVM内存模型和结构GC原理,功用调优调优:Thread Dump, 剖析内存结构
class 二进制字节码结构, class loader 体系 , class加载进程 , 实例创立进程
办法实施进程:Java各个大版别更新供给的新特性(需求简略了解)
2.Java的作业(根底必备)
这条或许出看很简略,java程序的作业谁不会呢?不过许多时分, 咱们只是单纯通过IDE去实施java程序,底层IDE又是怎样实施java程序呢?许多人并不了解。
这 个常识点是最最根柢的java开发者需求把握的,初学java,第一个肯定是教你怎样在指令行中实施java程序,可是许多人一旦把java学完 了,IDE用上了,就把这个都忘了。为什么侧重要知道这个呢,知道了java最朴素的建议办法之后,你才调在建议出问题的时分,去剖析其时建议的目录多少,实施命名怎样,参数怎样,是否有缺失等。 这样有利于你实在开发中去处理那些奇奇怪怪的或许和环境相关的问题。
在这儿需求把握的常识有:
javac 编译java文件为 class 文件java 指令的运用, 带package的java类怎样在指令行中建议java程序触及到的各个途径(classpath, java。library。path, java作业的主目录等)
3.数据类型
这条没有什么许多说的,无非便是Java中的根柢类型和政策类型的把握。能够再了解一些JDK怎样自动转化方面的常识,包含装箱拆箱等,还要留神防止装箱之后的类型持平的判别
首要常识点:
根柢类型: int, long, float, double, boolean ······
对应的政策类型: Integer 等类型到根柢类型的转化, 装箱和拆箱Object类型: equals, hashcodeString 类型的特征
4.政策和实例,政策的创立(tzcyz)
在这方面,开发者需求了解class和instance的概念以及之间的差别, 这是java面向政策特性的一个根底。
首要常识点有:Class和 Instance 的概念;
Instance 创立的进程:1. 无承继:分配内存空间, 初始化变量, 调用结构函数;2.有承继:处理静态动作, 分配内存空间, 变量界说为初始值 , 从基类->子类, 处理界说处的初始化, 实施结构办法;
需求留神的点:静态特征等从基类->子类进行初始化;默许无参结构办法相关的特性。
5.拜访操控
这也是java封装特性的一个根底需求把握的有:public protected default private 关于class, method, field 的润饰效果
6.流程操控
Java 流程操控的根底,虽然有些语法纷歧定很常用,可是都需求了解,并且在适合的当地运用它们。需求把握的有:
if, switch, loop, for, while 等流程操控的语法
7.面向政策编程的概念
这是一个java的中心概念,关于任何java开发者都需求娴熟把握。Java中许多特性或许说常识点都是和java面向政策编程概念相关的。在我的了解, 一个好的开发者不只仅需求了解这些特性(常识点)本身,也更需求知道这些政策在java的面向政策编程概念中是怎样表现出来的,这样更有利于开发者把握 java这门开发言语,以及其他面向政策编程的言语。
首要的常识点包含有:面向政策三大特性:封装,承继,多态; 各自的界说概念,有哪些特性表现出 来,各自的运用场景静态多分配,动态单分配的概念重载的概念和运用承继:接口多结束,基类单承继抽象,抽象类,接口多态:办法掩盖的概念和运用接口回调
8.Static
静态特征在java日常开发中也是常常运用,需求了解和 static 关键字相关的用法,还有和其他关键字的协作运用, 如是否能够和 abstract, final 等关键字联合运用。
首要需求把握的有:静态特征的界说,运用,以及类加载时怎样初始化静态办法的界说和运用静态类的界说和运用静态代码块的界说和初始化机会
9.根底常识点
这儿首要罗列一些散落的,没有体系归类的一些java常识点。在日常的开发中用到也不少。
暂时归纳包含有:
equals , hashcode , string/stringbuffer ,final , finally , finalize
10.集结结构
这个是一个需求多加把握的部分,做java开发,能够说没有不用到集结结构的,这很重要。可是这儿的常识点并不难,可是关于集结最好要了解内部的结束办法,由于这样有助于你在各个不同的场景选择适合的结构来处理问题,比方有1W个元素的集结,常常要进行contains判别操作,知道了集结的特性或许内部结束,就很简略做出正确的选择。
这儿包含了如下内容(并发相关不包含在内):集结结构的体系: 根底Collection ,Map详细集结结束的内容, List ,Set ,Map 详细的结束,内部结构, 特其他办法, 适用场景等集结相关的东西类 Collections 等的用法
11.失常结构
失常在java的开发中或许没有那么被重视。一般遇到失常,直接上抛,或许随意catch一下处理之后关于程序全体作业也没有什么大的影响。不过在企业级规划开发中,失常的规划与处理的好坏,往往就关系着这个体系全体的强健性。一个好的体系的失常关于开发者来说,处理应该一致,防止各处散落许多失常处理逻辑;关于体系 来说,失常应该是可控的,并且是易于运维的,某些失常呈现后,应该有应对的办法,知道怎样运维处理,所以虽然失常结构很简略,可是关于整个企业级运用开发来说,失常处理是很重要的,处理好失常就需求了解Java中的失常体系。
这部分需求把握的常识点首要是:失常的体系:ThrowableExceptionRuntimeExceptionErrorRuntimeException 和 一般 Exception 的差异, 详细处理办法等
12.Java IO
IO 在java中不只仅是文件读写那么简略,也包含了 socket 网络的读写等等悉数的输入输出操作。比方说 标准HTTP央求中Post的内容的读取也是一个输出的进程,等等…
关于IO,Java不只供给了根柢Input、Output相关的api,也供给了一些简化操作的Reader、Writer等api,在某些开发(触及许多IO操作的项目)中也很重要,一般日常的开发中也会触及(日志,临时文件的读写等)。
在这中的常识点首要有:根柢IO的体系: 包含有InputStream , OutputStream, Reader/Writer, 文件读取,各种流读取等NIO 的概念, 详细运用办法和运用场景
13.多线程并发
多线程是Java中普遍以为比较难的一块(Lihuzine)。多线程用好了能够有用行进cpu运用率, 行进全体体系功率, 特别是在有许多IO操作堵塞的情况下;可是它也是一柄双刃剑, 假如用欠好,体系非但行进不大,或许没有行进,并且还会带来多线程之间的调试时等问题。在多线程中内容有许多,只是简略说明一下Java中开端运用多线程需求把握的常识点,往后有机会独自再详细介绍一些高档特性的运用场景。
需求了解的常识点:
多线程的结束和建议callable 与 runable 差异syncrhoized ,reentrantLock 各自特征和比对线程池future 异步办法获取实施效果concurrent 包lock
14.网络
Java 中也是供给了能够直接操作 TCP协议、UDP协议的API。在需求侧重网络功用的情况下,能够直接运用TCP/UDP 进行通讯。在检查Tomcat等的源码中,就能够看到这些相关API的运用情况。不过一般也比较少会直接运用TCP,会运用比方MINA、Netty这样 的结构来进行处理,由于这个方面的开发触及不多,所以就不再详细罗列了。
15.时刻日期处理
简直关于每个运用来说,时刻日期的处理也是绕不过去的,可是JDK8 之前的时刻相关API用法并不友善。在那个年代,能够选择Joda等时刻结构。到了JDK8 发布之后,全新的时刻API根柢融合了其他结构的利益,现已能够很好的直接运用了。
关于Java开发者来说,需求娴熟地运用API来对时刻和日期做相关的处理。
详细常识点不再罗列,会在往后再写个专门的文章来总结一下JDK8中时刻日期API的用法
16.XML解析/ JSON解析
其实这两块内容都不是J2SE里边的内容,可是在日常开发中,和其他程序交互,和配备文件交互,越来越离不开这两种格式的解析。
不过关于一个开发者来说,能够了解一些XML/JSON详细解析的原理和办法,有助于你在各个详细的场景中更好的选择适合你的办法来使得你的程序更有用率和愈加强健。
XML: 需求了解 DOM解析和 SAX解析的根柢原理和各自的适用场景JSON: 需求了解一些常用JSON结构的用法, 如 Jackson, FastJson, Gson 等。
17.Maven的运用
Maven 也不是Java里边的内容,可是maven是革命性的,给java开发带来了巨大的便当。从依托的引进和处理,开发流程的更新和发布产出,乃至版其他更 新,运用maven能够大大简化开发进程中的凌乱度,然后节省许多时刻。能够说,maven现已成为java开发者的标配了。所以我把maven也作为一 个java开发者关于根底必备的常识点。往后会再放上一些我的一些关于maven运用的经历和技巧等,这儿就不再细说了。
18.泛型
这是JDK5开端引进的新概念,其实是个语法糖,在编写java代码时会有少量便当, 一般的运用或许是业务的开发,只需求简略运用,纷歧定会用到界说泛型这样的操作, 可是开发一些根底公共组件会运用到,能够在需求的时分再细看这个部分,一般情况下只需会简略运用即可。
19.标明
也是jdk5 之后引进的。spring是个优异的结构,最开端就以xml作为标准的配备文件。不过到了Spring3 之后,尤其是spring-boot 鼓起之后,越来越推重运用标明来简化xml配备文件了,关于开发者来说,能够节省不少xml配备的时刻。可是劣势是在于标明散落在各个类中,不像xml, 能够对悉数配备有个全局性的了解和处理,所以还没有办法说完全就代替悉数的xml。关于一般开发者,会运用标明即可,一些公共组成的开发者或许会需求了解 标明的界说和结束,能够在详细需求的时分再细看。
20.RMI
RemoteMethodInvocation ,Java言语特有的远程调用接口,运用仍是比较简略便当。不过需求跨言语的情况下,就需求运用 webservice 等其他办法来支撑。一般来说,程序都不需求运用RMI,不过能够在特定的情况下运用,我就在一个项目中,运用RMI来进行程序远程建议接连的操控。
21.JNI
Java Native Interface,能够容许Java中调用本地接口办法,一般用于C/C++代码的调用。需求留神的是在java中加载so/dll文件的途径问题,本身调用接口并不凌乱,可是常常在是否加载了所需的本地接口库中花费较多时刻。
以 上也只是简略介绍了下关于这些java根柢常识点和技术点的一些观点和介绍, 这些内容都源自于运用java的一些总结, 希望给刚刚触摸Java, 或许计划从Java开发的人一些经历, 希望能够更有用率地学习和运用java, 防止走了弯路浪费了名贵的时刻。
原文地址:https://www.cnblogs.com/monkey7788/p/12037670.html