一为什么要安装java的开发工具包
windows平台安装
1首先安装java的开发工具包jdk,
2安装完对应平台(linux/windows)的jdk【同一软件针对不同平台有不同的安装包,因为软件在不同平台想要运行最终都得符合对应平台的底层硬件以及系统架构,所以开发同一款电脑软件,需要分别对linux/windows进行开发,开发移动端客户端,需要分别对ios/androoid系统进行开发,因此说开发pc/移动端的客户端是个相当麻烦的活,因为你要针对不同平台开发客户端,因此b/s架构的开发速度要远远优于c/s结构的开发)每一款软件都是针对为了能够在系统上运行进行的独一无二的设计,拿jdk举例,jdk有linux版的,有windows版的,linux版jdk的解释程序和windows版的解释程序就大不相同,因为解释器是负责将中间代码字节码文件转换成对应平台的目标代码的,java语言之所以能够跨平台是因为jvm虚拟机能够针对不同的平台将java的字节码文件转换成对应平台的目标代码,因此java可以在不同平台上运行,而对于不同平台自然转换的目标代码就不一样】
之后设置CLASSPATH环境变量:jvm会去指定的路径搜索他想要加载的类,让jvm知道在哪里搜索他要加载的类,为什么说是开发工具包呢?jdk下的lib文件夹中装的都是程序语言开发者为我们写好的类文件,在/lib/tools.jar lib/dt.jar下面给我们提供了很多写好的接口,而以后,我们应多看看这些接口的源码,加强java原理知识的掌握
有了这两部你就可以编译,运行java了
到jdk的bin目录下利用javac编译程序编译java代码 javac xx.java【编译的时候只是将java源代码翻译成字节码文件,字节码是存放在硬盘上的文件】
到jdk的bin目录下利用java解释程序边解释边运行java代码 java xx【字节码加载到jvm中,即类被加载时,才有内存的概念,只有解释的时候才会存在类加载的过程,Java的class文件被加载到内存中去解释执行,类加载的实际:运行时,依靠反射实现动态加载】
3如果你觉得每次使用java的编译程序javac和解释程序java比较麻烦的话,你可以在path变量中将jdk的bin目录加上去
linux平台安装
由于开发的时候一般都是在mac/windows安装jdk【提供给java开发人员使用的,jdk=java开发工具(bin目录)+lib+jre】,linux一般是用于作为服务器提供服务的,因此一般linux只需要安装java的运行环境jre【java虚拟机+java程序所需的核心类库,虚拟机使用c++/c实现的,java核心类库使用java实现的】就可以了,安装完之后无需设置classpath环境变量,也无需添加path环境变量,因为linux可以自动搜索到类和java的解释程序Java。安装之后就可以将编译好的字节码文件用java的解释程序java在linux上解释运行了
--------------------------------------------------------------------------------------------------------------------------------------------------------------
二关于java8新特性
从1995年推出java jdk1.1到2014/3/18,Oracle发布了java8正式版,jdk1.8,java引入了大量的新特性
想看java SE从1-8的版本更新引入的新特性请看这篇文章https://www.cnblogs.com/rese-t/p/7823378.html
重新设计的接口语法(default/static)Lamda表达式,方法引用,构造器引用,函数式编程,流式编程,新的日期时间API
----------------------------------------------------------
四对跨平台的理解?跨平台语言的好处?
一次编译到处运行的原因:
Java文件被编译后会转换为字节码,字节码可以在任何平台上通过java虚拟机来运行,即通过虚拟机的解释程序运行
java之所以跨平台是因为不同平台的jvm的解释程序可以将其解释成对应平台上的目标代码,因此java得以跨平台
如果一个语言能够实现跨平台,那么如果想让各个不同的平台上开发同一款客户端,不如用这种跨平台的语言去开发,这样只需一份源代码就可以实现在各个平台上运行的客户端了,加快开发的速度。
然而现实生活中并不是这样的,拿开发手机客户端来讲,比如说开发微博,在android系统上的微博使用java语言实现,在ios系统上的微博使用object c实现,那么为什么不能只用java语言开发微博,让他同时运行在android平台和ios平台呢?希望有人可以指点一下!!
本博文历时创作4小时,到本博文发表前我想到了其中的原因,因为android平台使用的dalvik虚拟机类似于java的虚拟机,因此java用来开发android客户端,而ios平台使用的虚拟机不同于java虚拟机,因此无法使用java开发的客户端运行在ios上
五对java底层的了解?
java的运行环境jre【java核心类库(核心包+扩展包+系统包)+jvm虚拟机】java的类库使用java实现的,java的jvm使用c++实现的(java.exe)
java的开发工具jdk【java开发工具bin,包含java程序的编译器】java开发工具也使用c/c++实现的(javac.exe),
我们说作为一个java程序⚪,你会发现掌握java的核心开发类库,会让你如鱼得水,这也是面试的时候考察一些类的源代码的原因
六浏览器对java的支持?
最开始java的应用就是网页上的applet,随后flash出现逐渐蚕食java的applet,因此现在我们在学习java的时候都不学习他在网页上的应用了,因为已经被淘汰了这种applet技术
我最近发现浏览器真的是一个强大的东西,因为你会发现浏览器中自带了对很多语言的运行支持,也就是说浏览器里安装了很多语言的运行环境,拿java来讲,ie浏览器就自带jre,使得java程序能够运行在浏览器上(java的解释程序)【这里说个梗,挺有意思的,据说当年微软抄袭Java,被oracle控告,从此微软在windows xp系统的ie浏览器中就不再提供java运行环境的支持,】,拿javascript来讲,很多浏览器都自带javascript的运行环境(js的解释程序),使得javascript程序能够运行在浏览器上
七java的舞台在哪里?
2007年推出基于linux平台的android系统,android平台使用的dalvik虚拟机类似于java的虚拟机,因此android使用java来开发客户端,因此java的一个舞台----》开发android客户端
java的另一个舞台-------》开发服务端应用程序,而我就是从属于这个舞台的一名coder