Java入门基础.pdf
《Java入门基础.pdf》由会员分享,可在线阅读,更多相关《Java入门基础.pdf(1621页珍藏版)》请在咨信网上搜索。
1、1.12.13.13.1.13.1.24.14.1.14.1.24.1.34.1.44.1.54.1.64.1.74.1.84.1.94.1.104.1.114.1.125.15.1.15.1.25.1.35.1.45.1.55.1.65.1.75.1.8目录前言IT视频教程目录第1章Java开发入门Java概述JDK、JRE、JVM的区别与联系第2章Java编程基础Java语法基础-1Java语法基础-2基本数据类型包装类阿里巴巴Java开发手册阿里Java开发手册最新完美版,千锤百炼始出炉阿里Java开发手册终极版!GoogleJava编程风格指南Java程序员必读的书籍详细介绍JAVA和
2、C+区别Java与指针引用、指针和句柄的区别什么是堆和栈,它们在哪儿?第3章面向对象数组工具类文档注释面向对象Object类单例设计模式封装继承多态15.1.95.1.105.1.115.1.125.1.136.16.1.16.1.26.1.36.1.46.1.56.1.66.1.77.17.1.17.1.27.1.37.1.47.1.57.1.67.1.77.1.87.1.97.1.107.1.117.1.127.1.137.1.147.1.157.1.16抽象类与接口接口回调闭包内部类异常第4章常见对象String类正则表达式基础正则表达式的应用常用正则表达式字符串格式化System类和R
3、untime类Math类和Random类第5章多线程多线程线程池volatile关键字解析HandlerThreadCallable和FutureJava中的Runnable、Callable、Future、FutureTask的区别与示例Java程序死锁问题原理及解决方案线程锁技术定时器、互斥、同步通信技术线程范围内共享数据多个线程之间共享数据的方式探讨使用JDK5中同步技术的3个面试题同步工具类原子类集合及concurrent并发包总结JDK8对并发的新支持27.1.177.1.187.1.197.1.208.18.1.18.1.28.1.38.1.48.1.58.1.68.1.78.1.
4、88.1.98.1.108.1.118.1.128.1.138.1.148.1.159.19.1.19.1.29.1.39.1.49.1.59.1.69.1.79.1.89.1.9阻塞队列Java并发工具包concurrent用户指南Fork/Join框架介绍多线程问题总结第6章集合框架Collection接口List接口Set接口Queue接口集合的遍历集合工具类Map接口Predicate和Stream操作集合集合框架的综合应用Java集合类型详解LinkedList源码剖析LinkedHashMap源码剖析HashMap、哈希表、哈希函数HashMap的实现原理HashMap源码剖析第7
5、章IO流IO流之File类IO流之字节流IO流之字符流常用IO流NIONIO工具类AIONIO和AIO序列化流39.1.1010.110.1.110.1.210.1.311.111.1.111.1.211.1.311.1.411.1.511.1.611.1.711.1.811.1.912.112.1.112.1.212.1.312.1.412.1.512.1.612.1.712.1.812.1.912.1.1012.1.1113.113.1.113.1.2对象的深复制和浅复制第8章网络编程网络编程写给那些让我糊里糊涂的HTTP、TCP、UDP、Socket你应该知道的计算机网络知识第9章安全加
6、密和安全有关的那些事Base64对称加密非对称加密消息摘要MessageDigest数字签名和数字证书Https扫盲贴Https编程网络安全第10章反射机制类加载器反射1反射2注解1注解2注解3基础篇:带你从头到尾玩转注解编译时注解依赖注入动态代理1动态代理2第11章新特性JDK新特性泛型基础1413.1.313.1.413.1.513.1.613.1.713.1.813.1.913.1.1014.114.1.1泛型基础2泛型封装你应该更新的Java知识你应该更新的Java知识之常用程序库1你应该更新的Java知识之常用程序库2你应该更新的Java知识之ObserverGoogleGuava官
7、方教程Java代码性能优化第12章内存管理JVM内存模型StackHeap5Java基础入门笔记十年生死两茫茫,不思量,自难忘,华年短暂,陈辞岁月悠悠伤,满腔热血已芜荒,展未来,后生强,战战兢兢,如履薄冰心彷徨,青丝化雪、鬓角成霜,已是英雄迟暮,人生怎慷慨激昂?对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。GitHub托管主
8、页https:/ 点击桌面计算机 选择属性选择高级系统设置 选择高级选项卡 点击环境变量 下方系统变量中查找 path双击pathXP系统:右键点击桌面计算机选择属性选择高级选项卡点击环境变量下方系统变量中查找path双击path将jdk安装目录下的bin目录添加到最左边并添加分号5.3.2path环境变量配置方式2path环境变量的参照形配置方式创建新的变量名称:JAVA_HOME为JAVA_HOME添加变量值:JDK安装目录将path环境变量中JDK目录修改:%JAVA_HOME%bin;path环境变量具有先后顺序5.3.3classpath环境变量配置方式classpath环境变量配置
9、方式创建新的变量名称:classpath值设定为指定的还有class文件的目录,多个目录间使用分号(;)分割Java概述43作用:使classpath目录中的.class文件可以在任意目录运行技巧:通常将配置的目录最前面添加.配置,即便当前目录,使.class文件搜索时首先搜索当前目录,然后根据目录配置的顺序依次查找,找到后即运行,因此classpath目录中的配置存在先后顺序5.4path和classpath的区别path环境变量里面记录的是可执行性文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path环境变量中配置的路径去找classpath环境变量里记录的是java类
10、的运行文件所在的目录6.Java的运行机制使用Java语言进行程序设计时,不仅要了解Java语言的显著特点,还需要了解Java程序的运行机制。Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译,最终生成后缀名为.class的字节码文件。然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。以HelloWorld为例,对Java程序的运行过程进行详细的分析,具体步骤如下:编写一个HelloWorld.java的文件。使用“javacHelloWorld.java”命令开启Java编译器并进行编译。编译结束后,会自动生成一个HelloWorld.cla
11、ss的字节码文件。使用“javaHelloWorld”命令启动Java虚拟机运行程序,Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟机针对加载到内存中的Java类进行解释执行,便可看到运行结果。通过上面的分析不难发现,Java程序是由虚拟机负责解释执行的,而并非操作系统。这样做的好处是可以实现跨平台性,也就是说针对不同的操作系统可以编写相同的程序,只需安装不同版本的虚拟机即可,如下图所示:Java概述44从上图可以看出,不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言具有“一次编写,到处运行(writeonce,runan
12、ywhere)”的特性,有效地解决了程序设计语言在不同操作系统编译时产生不同机器代码的问题,大大降低了程序开发和维护的成本。需要注意的是,Java程序通过Java虚拟机可以达到跨平台特性,但Java虚拟机并不是跨平台的。也就是说,不同操作系统上的Java虚拟机是不同的,即Windows平台上的Java虚拟机不能用在Linux平台上,反之亦然。7.Eclipse开发工具在实际项目开发过程中,由于使用记事本编写代码速度慢,且不容易排错,所以程序员很少用它来编写代码。为了提高程序的开发效率,大部分软件开发人员都是使用集成开发工具(IDE,IntegratedDevelopmentEnvironmen
13、t)来进行Java程序开发的。正所谓“工欲善其事,必先利其器”,接下来就为读者介绍一种Java常用的开发工具Eclipse。Eclipse是由蓝色巨人IBM花费巨资开发的一款功能完整且成熟的IDE集成开发环境,它是一个开源的、基于Java的可扩展开发平台,是目前最流行的Java语言开发工具。Eclipse具有强大的代码编排功能,可以帮助程序开发人员完成语法修正、代码修正、补全文字、信息提示等编码工作,大大提高了程序开发的效率。Eclipse的设计思想是“一切皆插件”。就其本身而言,它只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中来实现的。Eclipse作为一款优秀的开
14、发工具,其自身附带了一个标准的插件集,其中包括了Java开发工具(JDK),因此,使用Eclipse工具进行Java程序开发不需要再安装JDK以及配置Java运行环境。下面将为读者具体的讲解Eclipse工具的使用。Java概述458.包的定义与使用为了便于对硬盘上的文件进行管理,通常都会将文件分目录进行存放。同理,在程序开发中,也需要将编写的类在项目中分目录存放,以便于文件管理。为此,Java引入了包(package)机制,程序可以通过声明包的方式对Java类定义目录。Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。在声明包时,使用package语句,具体示例如下:pac
15、kagecn.itcast.chapter01;/使用package关键字声明包publicclassExample01需要注意的是,包的声明只能位于Java源文件的第一行。在实际程序开发过程中,定义的类都是含有包名的,如果没有显式地声明package语句,创建的类则处于默认包下,在实际开发中,这种情况是不应该出现的,本教材的示例代码主要展现的是功能部分的代码,所以在大多数示例代码中没有为示例指定包名,但是在提供的源码中,都已使用包名。在开发时,一个项目中可能会使用很多包,当一个包中的类需要调用另一个包中的类时,就需要使用import关键字引入需要的类。使用import可以在程序中一次导入某个
16、指定包下的类,这样就不必在每次用到该类时都书写完整类名,简化了代码量。使用import关键字的具体格式如下所示:import包名.类名;需要注意的是,import通常出现在package语句之后,类定义之前。如果有时候需要用到一个包中的许多类,则可以使用“import包名.*;”来导入该包下所有类。在JDK中,不同功能的类都放在不同的包中,其中Java的核心类主要放在java包及其子包下,Java扩展的大部分类都放在javax包及其子包下。为了便于后面的学习,接下来简单介绍Java语言中的常用包。java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等。:包
17、含Java网络编程相关的类和接口。java.io:包含了Java输入、输出有关的类和接口。java.awt:包含用于构建图形界面(GUI)的相关类和接口。Java概述46除了上面提到的常用包,JDK中还有很多其它的包,比如数据库编程的java.sql包,编写GUI的javax.swing包等等,JDK中所有包中的类构成了Java类库。在以后的章节中,这些包中的类和接口将逐渐介绍,这里只需要有个大致印象即可。Java概述471.详细介绍1.1JVM-javavirtualmachineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.
18、class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。JVM通过抽象操作系统和CPU结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关。但是在一些小的方面,JVM的实现也是互不相同的,比如垃圾回收算法,线程调度算法(可能不同OS有不同的实现)。JVM的主要工作是解释自己的指令集(即字节码)到CPU的指令集或OS的系统调用,保护用户免被恶意程序骚扰。
19、JVM对上层的Java源文件是不关心的,它关注的只是由源文件生成的类文件(classfile)。类文件的组成包括JVM指令集,符号表以及一些补助信息。JDK、JRE、JVM的区别与联系48JDK、JRE、JVM的区别与联系491.2JRE-javaruntimeenvironmentJRE是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。所以,
20、在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。(jre里有运行.class的java.exe)JRE是Sun公司发布的一个更大的系统,它里面就有一个JVM。JRE就与具体的CPU结构和操作系统有关,我们从Sun下载JRE的时候就看到了不同的各种版本。同JVM一起组成JRE的还有一些API(如awt,swing等)。JRE是运行Java程序必不可少的。JRE(JavaRuntimeEnvironment),是运行Java程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件),JRE的地位就象一台PC机
21、一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。JDK、JRE、JVM的区别与联系50JRE里面有一个JVM,JRE与具体的CPU结构和操作系统有关,我们从Sun下载JRE的时候就看到了不同的各种版本,同JVM一起组成JRE的还有一些API(如awt,swing等),JRE是运行Java程序必不可少的.1.3JDK-javadevelopmentkitJDK是java开发工具包,基本上每个学java的人都会先在机器上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、
22、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。bin:最主要的是编译器(javac.exe)include:java和JVM交互用的头文件lib:类库jre:java运行环境注意:这里的bin、lib文件夹和jre里的bin、lib是不同的,总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。eclipse、idea等其他IDE有自己的编译器而不是用JDKbin目录中自带的,所以在安装时你会发现他们只要求你选中jre路径就ok
23、了。2.三者联系JDK、JRE、JVM的区别与联系51Java喊出的带有标志性的口号“WriteOnce,RunAnywhere(一次编写,到处运行)”,正是建立在JRE的基础之上。何以实现?就是在Java应用程序和操作系统之间增加了一虚拟层JRE。程序源代码不是直接编译、链接成机器代码,而是先转化到字节码(bytecode)这种特殊的中间形式,字节码再转换成机器码或系统调用。前者是传统的编译方法,生成的机器代码就不可避免地跟特殊的操作系统和特殊的机器结构相关。而Java程序的字节码文件可以放到任意装有JRE的计算机运行,再由不同JRE的将它们转化成相应的机器代码,这就实现了Java程序的可移
24、植性。这样程序员也不用去关心程序运行的具体环境,而可以专心编写软件。这种分层抽象、隐藏细节的思想在计算机科学中处处可见,比如机器组织结构的设计、网络协议的实现等。Pascal语言的发明者NiklausWirth,就富有预见性地指出应该有这样一种可移植的语言,其生成的中间代码可以在一台假想的机器(ahypotheticalmachine)上运行。而Java虚拟机(Javavirtualmachine或JVM)就是这样的一台机器,它模拟实际处理器的结构,解释字节码。怎么一会说是JRE,一会儿又成了JVM,两者是否同物不同名?回答是否定的。JRE的地位就象一台PC机一样,我们写好的Win32应用程序
25、需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。JDK、JRE、JVM的区别与联系52要运行Applet,在客户端必须安装有JRE,即“运行时”,容易一点理解,就象所谓的“插件”,要开发JAVA应用程序Web应用,就必须在服务器端安装相应的JVM+JDK了(开发应用Javaweb应用时,客户端不需要安装任何的JVM)如果你使用JAVA开发应用,就需要安装JRE+JDK,就是J2SE如果在客户端运行Applet,客户端浏览器必须嵌有JAVAJVM,如果没有,就需要安装,即:在客户端创建JRE(运行时,包含JVM),而客户端是不需要做开发的,所以,JDK就没有必要安装
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 入门 基础
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。