Java是一门面向对象编程言语,不只吸收了C++言语的各种优点,还摒弃了C++里难以理解的多承继、指针等概念,因此Java言语具有功能强大和简略易用两个特征。Java言语作为静态面向对象编程言语的代表,极好地完成了面向对象理论,答应程序员以高雅的思想方式进行杂乱的编程。
Java具有简略性、面向对象、分布式、健壮性、安全性、渠道独立与可移植性、多线程、动态性等特色。
Java能够编写桌面使用程序、Web使用程序、分布式体系和嵌入式体系使用程序等。
Java工作原理
由四方面组成:
⒈Java编程言语
⒉Java类文件格式
⒊Java虚拟机
⒋Java使用程序接口
当修改并运转一个Java程序时,需要一起涉及到这四种方面。使用文字修改软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中界说不同的类,通过调用类(这些类完成了JavaAPI)中的方法来访问资源体系,把源文件编译生成一种二进制中心码,存储在class文件中,然后再通过运转与操作体系渠道环境相对应的Java虚拟机来运转class文件,执行编译产生的字节码,调用class文件中完成的方法来满足程序的JavaAPI调用。
本教程讲解JavaSE的高档技能,包括程序调试技能,抽象类与接口的根本使用,反常处理及反常在开发中的使用,使用数组存储数据,Java常用类以及常用类的常用操作,Collection调集及Map调集的特色及使用,使用IO流读写文件内容,开发多线程使用程序及线程同步,反射技能的根本使用等内容。

java

java零基础自学教程

假如你想自学Java,认真看完本文,你以后的IT职场生涯至极少走1年弯路。
满满的Java学习干货,主张保藏!
初衷
常常有小伙伴私聊问我“怎么自学Java”、“想转行Java靠谱吗”等问题,因为接触过许多类似经历的同学,所以很能了解这些同学的痛苦和迷茫。
写这篇文章前,我看了一些网上Java自学的文章,许多我都不太满意,有的乃至让我感到愤恨,要么是站在现有的视角侃侃而谈,要么是朴实的瞎编骗小白。
许多文章都有一个老毛病:彻底没有从小白的视角去思考,内容太多,什么微服务、架构、大数据都来了,这底子不是自学阶段该去看的东西,小白看了这些文章,只会越看越懵逼,底子无法下手。
职业现状
程序员现状
由于程序员的薪水比较高,最近几年有许多其他专业的人涌进了程序员职业,加速了这个职业的内卷,可是据某招聘网上的数据统计,程序员其时的需求量还是远高于全职业的均匀线的。所以,程序员的现状我觉得是不错的,至少几年内是无需忧虑的。
Java现状
最近几年,Go、Python等言语快速兴起,大有挑战Java位置的趋势,可是Java毋庸置疑仍是其时互联网职业里招聘需求量最大的。
很多大厂:阿里、美团、快手、拼多多、滴滴、网易等,都是以Java为公司的主言语,部分大厂:腾讯、百度、字节等,虽然以其他言语为主言语,可是多多极少也会有一些Java岗。
所以,Java的现状及未来,我觉得都是比较不错的。岗位多也代表着机会多,关于新人来说比较友好,所以我个人是比较推荐新人学Java的。
Java分为三个体系:
⒈JavaSE(J2SE)(Java2PlatformStandardEdition,java渠道标准版)
⒉JavaEE(J2EE)(Java2Platform,EnterpriseEdition,java渠道企业版)
⒊JavaME(J2ME)(Java2PlatformMicroEdition,java渠道微型版)。
2006年,SUN公司在JavaOne大会上,宣告在GNU通用公共协议(GPL)的构架下向开源国际贡献Java渠道,这次敞开的Java版别包含了其标准版(Standard)、微型版(Micro)以及企业版(Enterprise)。这是一个具有“前史性意义”的改变。
Java的首要特性:
Java言语是简略的:
Java言语的语法与C言语和C++言语很挨近,使得大多数程序员很容易学习和运用。另一方面,Java丢弃了C++中很少运用的、很难了解的、令人迷惑的那些特性,如操作符重载、多承继、主动的强制类型转化。特别地,Java言语不运用指针,而是引证。并供给了主动的废料搜集,使得程序员不用为内存管理而担忧。
Java言语是面向方针的:
Java言语供给类、接口和承继等面向方针的特性,为了简略起见,只支撑类之间的单承继,但支撑接口之间的多承继,并支撑类与接口之间的完成机制(关键字为implements)。Java言语全面支撑动态绑定,而C++言语只对虚函数运用动态绑定。总归,Java言语是一个纯的面向方针程序设计言语。
Java言语是分布式的:
Java言语支撑Internet运用的开发,在根本的Java运用编程接口中有一个网络运用编程接口(javanet),它供给了用于网络运用编程的类库,包含URL、URLConnection、Socket、ServerSocket等。Java的RMI(长途办法激活)机制也是开发分布式运用的重要手段。
Java言语是强健的:
Java的强类型机制、反常处理、废物的主动搜集等是Java程序强健性的重要确保。对指针的丢弃是Java的明智选择。Java的安全查看机制使得Java更具强健性。
Java言语是安全的:
Java通常被用在网络环境中,为此,Java供给了一个安全机制以防恶意代码的进犯。除了Java言语具有的许多安全特性以外,Java对经过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防代替本地的同名类、字节代码查看,并供给安全管理机制(类SecurityManager)让Java运用设置安全岗兵。
Java言语是体系结构中立的:
Java程序(后缀为java的文件)在Java渠道上被编译为体系结构中立的字节码格局(后缀为class的文件),然后能够在完成这个Java渠道的任何体系中运转。这种途径适合于异构的网络环境和软件的分发。
Java言语是可移植的:
这种可移植性来源于体系结构中立性,另外,Java还严格规则了各个根本数据类型的长度。Java体系本身也具有很强的可移植性,Java编译器是用Java完成的,Java的运转环境是用ANSIC完成的。
Java言语是解说型的:
如前所述,Java程序在Java渠道上被编译为字节码格局,然后能够在完成这个Java渠道的任何体系中运转。在运转时,Java渠道中的Java解说器对这些字节码进行解说履行,履行进程中需求的类在联接阶段被载入到运转环境中。
Java是高性能的:
与那些解说型的高级脚本言语比较,Java的确是高性能的。事实上,Java的运转速度跟着JIT(Just-In-Time)编译器技术的开展越来越挨近于C++。
Java言语是多线程的:
在Java言语中,线程是一种特殊的方针,它必须由Thread类或其子(孙)类来创立。通常有两种办法来创立线程:其一,运用型构为Thread(Runnable)的构造子类将一个完成了Runnable接口的方针包装成一个线程,其二,从Thread类派生出子类并重写run办法,运用该子类创立的方针即为线程。值得注意的是Thread类现已完成了Runnable接口,因此,任何一个线程均有它的run办法,而run办法中包含了线程所要运转的代码。线程的活动由一组办法来控制。Java言语支撑多个线程的同时履行,并供给多线程之间的同步机制(关键字为synchronized)。
Java言语是动态的:
Java言语的设计方针之一是适应于动态变化的环境。Java程序需求的类能够动态地被载入到运转环境,也能够经过网络来载入所需求的类。这也有利于软件的升级。另外,Java中的类有一个运转时刻的表明,能进行运转时刻的类型查看。
Java前史
詹姆斯·高斯林(JamesGosling)在他的许多机顶盒项目之一发起的Java言语项目在1991年6月运用。高斯林的办公室放着一棵橡树之后,最初称为橡树(Oak),也最终被定名为Green,后来被改名为:Java。
Sun在1995年第一个揭露发布Java1.0。它写一次,到处可运转(WORA),供给无本钱的运转时刻上流行的渠道。
2006年11月13日,Sun在GNU通用公共许可证(GPL)的条款公布Java作为自由和敞开源码软件。
2007年5月8日,Sun完成了这个进程,使一切的Java核心代码,免费和开源,除了代码的一小部分,其间Sun并没有具有版权。
Java开发工具:
Java言语尽量确保体系内存在1G以上,其他工具如下所示:
⒈Linux体系、MacOS体系、Windows95/98/2000/XP,WIN7/8体系。
⒉JavaJDK7、8……
⒊Notepad编辑器或许其他编辑器。
⒋IDE:Eclipse
Java的版别前史
Java的首要发行版别及其发行日期如下:
JDK1.0(1996年1月23日)
JDK1.1(1996年2月19日)
J2SE1.2(1998年12月8日)
J2SE1.3(2000年5月8日)
J2SE1.4(2002年2月6日)
J2SE5.0(2004年9月30日)
JavaSE6(2006年12月11日)
JavaSE7(2011年7月28日)
JavaSE8(2014年3月18日)
JavaSE9(2017年9月21日)
JavaSE10(2018年3月20日)
JavaSE11(2018年9月25日)
JavaSE12(2019年3月19日)
JavaSE13(2019年9月17日)
JavaSE14(2020年3月17日)
为什么Java运用最广泛?
从互联网到企业渠道,Java是运用最广泛的编程言语,原因在于:
⒈Java是基于JVM虚拟机的跨渠道言语,一次编写,到处运转;
⒉Java程序易于编写,并且有内置废物搜集,不用考虑内存管理;
⒊Java虚拟机具有工业级的稳定性和高度优化的性能,且经过了长时期的考验;
⒋Java具有最广泛的开源社区支撑,各种高质量组件随时可用。
Java言语常年霸占着三大商场:
⒈互联网和企业运用,这是JavaEE的长期优势和商场位置;
⒉大数据渠道,首要有Hadoop、Spark、Flink等,他们都是Java或Scala(一种运转于JVM的编程言语)开发的;
⒊Android移动渠道。
这意味着Java具有最广泛的工作商场。
自学Java前你要知道的
自学前请做好心理预备,自学是一个既寂寞又绵长的进程,假如想踏进来,请做好抛弃几乎一切文娱生活的预备,包含过年的时分。假如只是抱着三天打鱼两天晒网的情绪,那我主张还是抛弃吧。
可是假如你能坚持下来,我信任一定能有所报答,我自己便是个例子,我走了那么多弯路,跟着本文走,你们没理由比我其时更差。
自学预估周期
自学的周期我给大家定了一个参考时刻:6个月,均匀每天6-8小时,共1200个小时左右,大致安排:
1、3个月根底常识学习和强化。
2、2个月SSM项目实战重复练习,项目实战同时也在温习和巩固之前的根底常识。
3、1个月面试高频题预备,看面试题其实也会增加自己的专业常识,并且或许比你幻想的要多,不夸张的说,前几年我从面试题里学到的常识或许比工作里取得的还多。
Java自学教程获取
授人以鱼不如授人以渔,一个简略又靠谱的的教程获取方法:B站搜索关键字+教程,例如:Java根底教程、MySQL教程、JavaWeb教程、SSM整合教程、Java项目实战等等,然后按“最多点击”排序,一般点击高的都是质量还能够的。
这里我也有全套的Java学习资料,获取方法:重视+私信扣“1”
很重要的主张
1、爱因斯坦的成功公式:成功=功率*时刻,自学也一样,需求劳逸结合,不要搞的太累,否则功率下降,花再多时刻也没用。
2、自学是一个绵长的进程,循序渐进、保持耐性,假如能够,找个伴一同学习,相互鼓励,相互交流,能够让自己更有动力坚持下去。
3、将自己的学习进程记录下来,当你发现累计的越来越多的时分,心里会有一种小成就感,这会提高你学习的动力。
4、专注于重点常识的学习,本文介绍的根本包括了其时你应该学习的内容,没有说到的大部分是没那么重要的,假如你无法判别是否重要,能够在本文下面留言,我会逐个回答,至于像一些什么:k8s、hadoop、hbase等等,看都别看,关于其时的你来说只是浪费时刻。
5、利用好搜索引擎,有什么问题就百度,新手大部分的问题百度都能解决。
6、看视频不要看书,其时阶段的你看任何书,包含大名鼎鼎的《Java编程思想》都是浪费时刻。
7、要跟着教程敲一遍乃至多遍,假如只看不跟着敲,你会发现最终啥都学不会。
8、一些介绍前史的视频能够过一遍简略了解就行,节省点时刻。
9、关于教程的选取:选择近2~3年的教程,讲师让自己听着舒畅即可,点击高的水平根本差不多。
10、不懂的常识能够重复看,例如同一个常识点有两套教程,看完第一个没彻底了解,能够再看第二个,加深形象,也能够查些资料帮助了解。
自学常识点
JavaSE
1、Java根底
根底概念/语法:
面向方针(承继、封装、多态)根底、包、类、接口、办法、方针、属性、第一个Java程序。
数据类型:
1)根本数据类型8种:byte、short、int、long、float、double、char、boolean;
2)引证数据类型
变量类型:局部变量、实例变量(成员变量)、类变量(静态变量)
修饰符:public、private、不写、protected、static、final、abstract、synchronized,volatile
运算符:
1)算术运算符:+、-、*、/、%、++、–;
2)关系运算符:==、!=、>、<、>=、<=;
3)逻辑运算符:&&、||、!;
4)赋值运算符:=、+=、-=、*=、/=;
5)条件运算符:Objectx=(expression)?valueiftrue:valueiffalse;
循环结构:for循环、while循环、do…while循环
条件语句:if…else、if…elseif…else
反常处理:try…catch…finally、throws、throw
字符串:String、StringBuilder、StringBuffer
其他:switchcase、数组、日期时刻、枚举、运用IDE进行DEBUG
2、调集
Map:HashMap(最重要)、ConcurrentHashMap、TreeMap、Hashtable
List:ArrayList(最重要)、LinkedList
Set:HashSet(最重要)、TreeSet
3、多线程
线程生命周期
创立线程的三种方法:承继Thread、完成Runnable;完成Callable
ThreadPoolExecutor(线程池)
锁:synchronized和Lock
4、I/O流
5、网络编程
6、反射
7、泛型
8、注解
小结:
1、该阶段很重要,主张至少看两套不同的教程。由于每个教师的观点都会有一些片面性,当遇到疑问的时分,能够看看其他教师的了解,或许就想通了。
2、看第一遍时会比较慢,第二遍会快一点,现已掌握的常识能够快速带过。
3、有疑问的常识多看几遍,也能够网上亮点博文辅佐了解,真实看不懂的能够先记下来,后边学到一定程度或许就了解了。
4、关于重点常识,能够做笔记来加深自己的了解,也便利后续自己温习。
5、Java根底、调集、多线程是核心中的核心。
方针:熟练掌握该章节所列的一切Java核心根底常识,能熟练的编写Java程序。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。