您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > CoreJava知识点
第一章corejava的入门一:什么是语言语言=os+数据结构+算法+思想os:操作系统数据结构:队,栈,二叉树,链表算法:做游戏开发时非常重要面试题:inta0,b0只使用一条输出语句输出a,b的最大值System.out.println((|a+b|+|a-b|)/2);二:安装jdk1)根据不同的操作系统下载不同的jdk2)安装jdk如果是windows,直接双击如果是unix,在shell中运行a)拷贝到家目录b)sudochmod777/optc)cpjdk_6u32_liunx_i586.bin/optd)cd/opte)sudo./jdk_6u32_liunx_i586.bin3)配置环境变量在bashrc中配置环境变量,打开该文件,追加内容vi~/.bashrc//添加以下内容CLASSPATH=.JAVA_HOME=/opt/jdk1.6.0_32PATH=$PATH:$JAVA_HOME/binexportCLASSPATHJAVA_HOMEPATHCLASSPATH指定自己编写的class文件的路径JAVA_HOME指定JDK的安装目录三:JDK:javaDevelopmentkitSun公司在推出Java语言的同时,也推出了Java的一系列开发工具,如JDK——JavaDevelopmentKit(Java开发工具包)。可以从网上免费下载。通常以JDK的版本来定义Java的版本。时间版本在Java标准函数库中的类(class)的数量----------------------------------------------------------------------1996JDK1.0(Java1.0)250重点applet1997JDK1.1(Java1.1)500比较适于开发图形界面1998JDK1.2(Java2)2300可达到平台原始速度,可用于书写正规企业级应用程序或移动应用程序2000JDK1.3(Java2)2002JDK1.4(Java2)计算能力大幅度提升2004JDK1.5(Java5.0)3500对语言本身作重大改变,更稳定、更安全、更高效补充:JDK主要包括内容:a)Java虚拟机:负责解析和执行Java程序。Java虚拟机可运行在各种平台上;b)JDK类库:提供最基础的Java类及各种实用类。java.lang,java.io,java.util,javax.swing,java.sql包中的类都位于JDK类库中。c)开发工具:这些开发工具都是可执行程序,主要包括:javac.exe编译工具;java.exe运行工具;javadoc.exe生成JavaDoc文档的工具jar.exe打包工具等。四:理解Java语言特征;Java语言包括语法规则和语法规则的实现。Sun公司对Java语言有自己的一份参考实现:JDK。a.编程语言:语言本质即规则:字符集、词法规则、句法规则(条件语句、循环语句等);桌面应用程序:拥有图形化用户接口的软件;服务器应用程序:通过浏览器访问运行;b.开发环境:开发程序,不管是桌面应用还是服务器应用,均需要JDK的支持。c.应用环境:面向应用程序,而不是开发系统程序或者硬件编程,比如说驱动就是系统程序,系统程序一般用c语言d.部署环境:服务器应用程序需部署运行在服务器应用程序上,服务器本身也是一个Java程序,用Java语言编写的服务器应用程序部署运行时也需要Java语言的支持,将java代码打成一个包,部署到服务器这个过程叫做部署环境五.为什么发明Java?为什么发明了java,换而言之,java有哪些优点呢?a.提供一个解释环境-----》JVM1)加速开发:Java当初目的是开发适用于智能化电子消费设备上的软件,它是基于C++语言,但做了简化,能加速软件的开发过程2)一次编译到处运行:跨平台3)多线程:多线程编程的简单性是Java成为流行的服务器端开发语言的主要原因之一4)支持动态更新:软件代码文件的替换即更新b.提供一个比较容易的方式编程1)更健壮:没有指针、没有内存管理;2)纯粹的面向对象的编程:在Java中认为一切均是对象,对象有属性以及改变属性值的方法。通过Java编程围绕着构建对象的模板、实例化对象、调用对象的方法和属性等来进行。c.那么如何实现上面这些呢?虚拟机JVM提供一个解释环境,让java代码可以运行。垃圾回收机制让程序员无需在代码中进行内存管理。代码安全校验保证java代码的安全性。六.理解Java虚拟机的特征;Jvm是什么?简称java虚拟机(javavirtualmachine),是用软件来模拟一个虚拟的环境。我们用java编写的源程序经过编译以后生成字节码文件,Jvm提供了一个解释运行java字节码文件的环境,只要在不同操作系统上安装了jvm后,就能对同一个java程序进行解释运行,这就java的跨平台,一次编译,到处运行。七.描述垃圾收集的概念;什么叫垃圾回收:1)垃圾:无用对象所占据的内存空间;垃圾回收:将无用对象所占据内存空间进行回收的过程;为什么要垃圾回收?1)对象创建,需要占用内存空间,在一个程序运行过程中要创建无数个对象,如果对象永久占用内存,那么内存很快会消费光,倒致后续对象无法创建或者出现内存不足的错误。因此必须采取一定措施及时回收那些无用对象的内存,这样保证内存可以被重复利用。C++等程序由程序员显示进行内存释放,这样有可能:c:malloc()free()c++:newdelete1)忘记内存释放,倒致无端的内存占用;2)释放核心类库占用内存,倒致系统崩溃;Java中垃圾回收处理:1)由虚拟机通过一个系统级的垃圾回收器线程自动完成,不会忘记也不会释放错,系统更加稳定;Java中垃圾回收处理特点:1)由虚拟机通过垃圾回收器线程自动完成;2)只有当对象不再被使用,它的内存才有可能被回收;如果虚拟机认为系统不需要额外的内存,即便对象不再使用,内存3)程序无法显示迫使垃圾回收器立即执行垃圾回收,可以通过java.lang.System.gc()/java.lang.Runtime.gc()建议虚拟机回收对象;4)垃圾回收器线程在释放无用对象占用内存之前会先行调用该对象的finalize()方法。该方法是否被调用以及被调用的时间极其不可靠。不建议重写。5)java.lang.System.gc()或者java.lang.Runtime.gc()都只是来通知系统应该处理垃圾java中垃圾回收处理的算法:1)标记清扫法2)内存搬移法八.阐述Java平台代码安全实现策略;Java虚拟机为Java程序提供运行时环境,其中一项重要的任务就是管理类,管理类的加载、连接和初始化;1)加载:查找并加载类的二进制文件(class文件),将其置于内存中。2)连接:a.验证:确保被加载类的正确性(有正确的内部结构,并且与其他类协调一致);为什么要验证:Java虚拟机不知道某个特定的.class文件到底是由正常的Java编译器生成的,还是黑客特制的。类的验证能提高程序的健壮性,确保程序被安全地执行。类验证内容:.代码和jvm规范一致:语法和版本是否兼容.代码不能破坏系统的完整性.没有堆栈的上溢和下溢.参数类型是正确的.类型转换的正确的b.准备:为类的静态变量分配内存,并将其初始化为默认值;c.解析:把类中的符号引用转换为直接引用(一个指向所调用方法在方法区内的内存位置的指针);3)初始化:给类的静态变量赋予正确的初始值;即时编译器(JITcompiler,just-in-timecompiler)是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序。8020规则:有80%的常用功能只用有20%的常用代码是经常使用的,Inter公司。这个是个专业的人区完成的,完成之后会安装在JVM中,我们使用就可以了。九.定义类、包和应用程序;1)Java的工作方式:源代码:编写Java源代码文件|编译器:用编译器编译源代码。编译器会检查错误,如果有错就要改正才能产生正确的输出。|输出:编译器会产生字节码。任何支持Java的装置都能够把它转译成可执行的内容。编译后的字节码与平台无关。|Java虚拟机:可以读取与执行字节码。加载指定类,开始执行它的main方法,然后一直运行到main的所有程序代码结束为止。2)Java的程序结构:a.源文件:包含Java代码(按java语法规则编写的内容)的文件;特征:i.以java作为后缀;ii.可以包含多个类/接口;iii.名称与类名(只包含一个类/接口)或public修饰的类/接口(包含多个类/接口)同名;结构:i.包的声明语句(可有可无,如有只能有一行,且位于最前面);package的作用:1.使用文件来进行层次管理的class2.在同一个包中不能出现相同的类名,避免命名冲突。3.一旦起了包名,类名就发生改变.包名.类名====权限类名ii.import语句(可有可无,可有多行,紧跟着包的声明语句);iii.类的声明语句();b.类:Java代码组织的单位,Java代码都是以一个个类形式组织的。用Java语言编写程序其实就是编写一个个类;一个类里的语句内容用大括号括起来,一个类里带有零至多个方法。结构:i.类的声明语句,例:publicclassHelloWorldii.类的内容语句,用大括号括起来:(1)属性;(2)方法:c.方法:类似于其它语言里的函数或过程。方法里带有零至多行语句。结构:i.方法的声明语句,例:publicstaticvoidmain(String[]args)ii.方法体,用大括号括起来:1)属性;(2)Java语句;d.Main方法:Java虚拟机执行Java程序时,首先执行调用的方法。main方法又叫程序的入口方法或起点方法。不管你的程序有多大,不管你的程序有多少个类,一定都会有一个main()方法来作为程序的起点。3)剖析类:publicclassFirstJavaProgram{publicstaticvoidmain(String[]args){System.out.println(HelloJava,Iamyourfans!);}}public:公开给其它类存取;class:类声明的关键字;FirstJavaProgram:类的名称;void:方法的返回值;main:方法的名称;String[]:数组类型;rgs:参数名称;System.out.println:打印到标准输出上(默认为命令行)HelloJava,Iamyourfans!:要输出的字符串内容;;每一行语句必须用分号结尾;十.编码、编译以及运用Java应用程序;1)编写:vi类名.java用记事本打开类名.java2)编译:javac-dbinsrc/类名.java3)运行:java-cpbin包名.类名-d:指定编译后的class文件存放的路径。编译时连同packge一起编译-cp:-classpath的缩写,指定执行class文件的搜索路径的。补充:类装载机制:双亲委托机制1)启动类装载器:$JAVA_HOME/jre/lib/rt.jar2)扩展类装载器:$JAVA_HOME/jre/lib/ext3)系统类装载器:$CLASSPATH双亲委托机制:向上委托,向下加载本机运行.class都是从系统类装载器一个完整的Java程序运行过程会涉及以下内存区域方法区/代码区:存放类的信息堆区:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次。栈区:保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区对象的引用(指针)。也可以用来保存加载方法时的帧PC寄存器:指向下一条需要执行的指令,将该数据传递给CPU常量池:JVM为每个已加载的类型维护一个常量池,常量
本文标题:CoreJava知识点
链接地址:https://www.777doc.com/doc-2906695 .html