日期:2014-05-20  浏览次数:20616 次

J2SE自学(一)—— Java简介与JDK部署
1、java的定义:
   java是SUN公司的JamesGosling发明的面向对象的可跨平台的编程语言

2、以后再公司学习新的技术的同时,不但要关注技术本身,还要关注发明该技术的公司对其技术的推崇程度以及社会上的支持等因素!

3、mysql被SUN公司收购,2010年初SUN被oracle收购了!(螳螂捕蝉黄雀在后!嗨!!

4、面向对象的高级语言是企图用人的世界观来改造计算机的世界观!——引用旺旺老师的经典语录!

5、平台的定义:
   我们把CPU处理器与操作系统的整体叫平台!


6、不同的CPU就有不同的指令集
   现在家庭主流的CPU是intel和AMD
   intel的指令集是:CISC(复杂指令集)——X86、MMX等
    AMD的指令集是:CISC
   PowerPC(IBM开发的CPU)的指令集是:RISC(精简指令集)
   因此,我们要开发程序,首先硬挨确定:
   1)、CPU类型,也就是指令集类型
   2)、操作系统(也可以称作平台)
   我们说的跨平台是指程序编译后的文件,可以在各个操作系统上运行而非编译前的文件

   java开始引入了“中间码+虚拟机”的方式,整合了编译语言(如C)与解释语言(如HTML),同时(如JVM)又解决了垃圾回收,安全性检查等传统语言头疼的问题!

7、JDK的安装时不需要忘注册表中写东西的,即不需要生成注册表!

8、JavaSDK是JDK的另一个称呼!
   JVM是java虚拟机也就是java的解释器
   JRE是java运行时环境,JRE包括了JVM和java运行时的支持类库
  
9、环境变量就是操作系统给程序运行提供支持的一些文件路径设置(不是很准确,但是易于理解)


10、在配置java环境变量时,应配置三个地点!
    Path(系统原有的)
    classpath、JAVA_HOME(这两个是中间添加的)
  
    JAVA_HOME是:C:\jdk1.6.0_21
    classpath是:.;C:\jdk1.6.0_21\lib;
    Path是:.;C:\jdk1.6.0_21\bin;


11、类名必须与第一步建立的文件名一致,也是区分大小写的

12、java语言是一门字母大小写敏感的语言

13、类名只能出现字母、数字、下划线和$符号,并且不能以数字开头,类名不能是java关键字

14、一些常用的DOS命令:
    1)、显示当前目录下的文件以及文件夹:dir
   2)、返回上一级目录:cd..
   3)、去他盘:(以D盘为例)d:
   4)、打开文件夹:cd  XXX
   5)、退出:exit

15、javadoc XXX.java    这个javadoc命令式给XXX.java文件生成相关的HTML文档注释,生成的位置与XXX.java同一目录
(即javadoc通过源程序.java生成注释)


16、如何生成jar包呢?
     jar cvf  XX.jar
    生成的位置在与源文件同一目录下,jar包中包含很多个java类文件,通过JDK提供的jar生成jar包

 

17、ant是一个 更强大的生成jar包的工具

18、
    java的优点:跨平台、面向对象、无指针、地洞垃圾回收机制
     java的缺点:
     ①、.class需要二次编译
     ②、JVM运用占资源
     ③、无指针无法直接操作内存
     ④、垃圾回收线程占用资源并且不会实时收集内存
/size]


19、[size=large]
    JVM运行:
    ①、类加载器——代码的转入
    ②、字节码校验器,可以发现操作数组、栈溢出、非法数据转化等多种错误——代码的校验
    ③、代码执行


20、
    java字节码的执行有两种方式:
     ①、解释执行方式:JVM通过解释将字节码翻译成对应的机器指令,速度很慢!
     ②、自JDK1.1时,引入java即时编译即JIT,解释器先将字节码编译成机器码,然后再执行该机器码,并且在运行时JIT会把翻译过来的机器码保存起来,以备下次使用,从理论上说,采用该JIT技术可以接近以前的纯编译技术。


补充:
1、java类(或者程序)都是可以反编译的!(尤其是C/S程序)

2、eclipse没有自带的JDK,但eclipse自带了自己的编译器,严格意义上说运行eclipse不需要JDK,仅仅需要JRE!即eclipse本身自带了java编译器但不包含JRE,但是eclipse自带的编译器与SUN提供的编译器不一样!不过没有关系!