Java学习基础知识

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

的标准开发平台。是J2EE和J2ME的基础,CoreJava开发基于该平台J2EEJava的企业己开发平台,Java的主要应用方向,大型系统的开发都是在该平台的完成,Web开发也属于其中的一部分J2MEJava的微系统开发平台,是一个正在成长的平台,主要用于资源有限的设备上的Java的开发,如手机,PDA等J2SE:标准开发包J2EE:J2SE标准开发包+J2EE开发包运行在服务器上J2ME:J2SE标准开发包的一部分+J2ME标准开发包+J2ME特定设备开发包机器环境JDK5.0Java的环境开发JDK:Java开发包,包含JVM(虚拟机)、J2SE基本开发包、实用工具(编译、运行、生成文档等)三部分操作步骤:1、安装JDK2、设置环境变量Java_HOME:Java开发需要的环境变量,值为JDK安装的根目录PATH:系统环境变量,在保留原来的值的基础上增加JDK安装的根目录下的bin的目录CLASSPATH:Java开发需要的环境变量,当前值为“.”,表示当前目录如:JDK安装在C:/j2sdk1.4.2中=C:/j2sdk1.4.2PATH=原来的值;%JAVA_HOME%/binWindowsPATH=原来的值:$JAVA_HOME/binUNIX/LINUXCLASSPATH=.注意:环境变量的值WINDOWS下大小写无关,UNIX/LINUX下大小写敏感在Windows中先载入系统变量,在载入用户变量,如果同名会覆盖系统变量Java的优点:1.开发效率高(相比C++)原因:没有指针、代码中不进行内存管理、完全面向对象的语言;由JVM和垃圾回收机制实现内存管理,代码中只使用new通知JVM进内存分配,其他操作全部隐式进行;C++必须考虑对C的向下兼容性,所以语言特性中包含少量过程化内容,而Java没有这个顾虑,能够实现完全面向对象的语言,从而开发中不用考虑任何过程化的思想2.一处编写,处处运行(跨平台);主要是通过JVM特性和语言本身的特性实现3.多线程传统的开发语言的多线程是操作系统级的多线程,Java是唯一实现语言级多线程的操作语言,是实现跨平台的关键语言特性;JVM(虚拟机)实现Java代码运行和跨平台特性实现的关键元素可以通过软件或者硬件实现,常用的是软件方式有多个版本,针对不同的操作系统,上层通过相同的接口和Java运行代码(字节码bytecode)交互,下层通过不同的接口和具体操作系统交互内部实现类似于一台真正的机器,有独立的内存、寄存器等部件(虚拟实现)垃圾回收机制实现对象在内存中的管理和回收管理主要表现在判定哪些对象具备被回收的条件(垃圾)和实现内存碎片整理垃圾对象的判定:没有任何对象的引用指向的对象称为垃圾对象垃圾回收机制启动时,会对所有垃圾对象进行回收垃圾回收底层是通过低优先级的守护线程(系统线程)实现的,一般在程序代码运行的间隙启动任何情况下垃圾回收不能强制执行,可以通过System.gc()和Runtime.gc()促使其执行,实质上是提高了垃圾回收线程的优先极Java的执行流程:1.源代码:文本格式,扩展名为.java2.目标代码(字节码):源代码编译后得到,二进制格式,扩展名为.class特点:和具体操作系统无关,只和JVM有关3.JVM执行目标代码a、通过类加载器将class文件载入内存b、使用代码安全校验机制对class文件进行检查c、使用解释器或者即时代码编译器进行执行解释器:对字节码文件进行逐行解释执行即时代码编译器:第一次执行时解释执行,同时将解释后的目标文件(和具体平台有关的二进制文件)存储虚拟机中,之后的执行直接执行该目标文件,不再通过解释器,效率可以大大提高Java代码的基本单位是类定义格式:[修饰符]class类名{....}public类的类名和文件名相同源文件中可以包含任意数量的类,但至多只能有一个public类源文件编译后,每个类对应一个class文件,文件名和类名相同源文件中如果没有public类,文件名任意命名*/publicclassFirstPro{*入口方法,格式固定,JVM执行该类时执行该方法*/publicstaticvoidmain(String[]args){System.out.println(HelloFirst!);}}classSecondPro{publicstaticvoidmain(String[]args){System.out.println(HelloSecond!);}}源代码中包含的一级元素只有package、import和class三种,顺序必须是package、import、classpackage只能出现一次,import和class可以出现多次注释:在源代码中存在,但编译是会被忽略的文本1.单行注释://注释2.多行注释:/*注释*/或者/*注释……*/单行注释和多行注释的文本内容任意,没有任何格式要求文档注释:/**注释*/有一定的语法格式要求,主要功能是对源代码功能的说明,注释完成后,与前两种注释在代码中查看的方式不同,是通过javadoc工具将代码注释抽取后生成html文件进行查看,所有的java标准化文档都是通过这种方式产生的代码语法“;”是唯一表示语句结束的符号所有的空格,包括Tab、换行对代码没有影响特殊关键字1.goto&const是关键字,不能使用在标识符命名中,但没有任何语法意义,称为保留关键字2.true&false不是关键字,不能使用在标识符命名中,原因是作为boolean类型的值使用Java的数据类型:一、基本数据类型:4类8种1.boolean只有true和false两个有效值,表示是或否2.char字符类型,表示单个字符,使用'字符'方式表示内部使用16位unicode(标准化保存方式)方式保存,中英文字符占用相同的空间注意:字符和字符串在java中的意义是完全不同的,字符串使用String类型保存,表示若干个字符序列,是引用类型数据3.整数类型,包括byteshortintlong四种byte:8bitshort:16bitint:32bit默认类型:64bit注意:所有整数类型都是有符号的,用于存储数据的bit数是总bit数减14.浮点数类型:包括float和double两种float:32bytedouble:64bit默认类型注意:所有浮点数类型都是有符号的运行结果类型的判定doublefloatlongintshortbyte通用规则:两个数进行运算时,按照大的类型决定结果类型特殊规则:如果结果类型小于int,按照int决定结果类型标识符命名约定1.类/接口/其他同级语法元素每个单词首字母大写,其余小写如:Account、MyAccount2.方法/属性/局部变量除第一个单词外,其余单词首字母大写如:userName、myName3.包全部小写如:com.briup.md014.常量全部大写,单词间通过“_”分隔如:MAX_VALUE5.除循环变量使用i、j、k等字母进行命名外,其他变量都应使用有意义的名称二、引用数据类型(对象类型)类(Class):将对象抽象化得到类,是对象的模板对象(Object):在问题描述中的名词通常可以使用对象进行描述,对象是具体的引用(对象的引用)引用(Referencetype)(对象的引用):Java不允许直接对对象进行操作,所有对象操作都通过指向对象的引用进行注意:类可以产生任意数量的对象,这些对象之间除了类型相同外,没有任何直接的关系类的成员(Member):属性和方法的总称类由三部分组成1.属性定义在类中,表示类的信息格式:[修饰符]属性类型属性名称;2.方法表示类的行为3.构造器用于创建类的对象变量的分类1、局部变量定义在方法或构造器中的变量(方法和构造器的参数也是局部变量)生命周期从定义开始,到相应的语法块结束终止没有默认初始值,必须先赋值后使用2、实例变量(属性)定义在类中,表示类的信息生命周期从对象创建开始(new),到对象生命周期结束终止(被垃圾回收)有默认初始值,初始值如下:数字类型(byte、short、int、long、float、double):0char:/u0000boolean:false所有引用类型:nullnull的含义是该变量没有指向任何的对象,对于值为null的变量,除了输出和执行连接操作外,不能执行任何操作赋值1、一般操作:=2、复合赋值运算符+=、-=、*=等,表示运算加赋值如:num+=10;相当于num=num+10;自增/减:++/--对于变量本身,++/--执行加1和减1的操作但对于整个表达式,++/--前置和后置的效果是不同的如:intnum=10;intresult1=num++;//后置,先操作后自增intresult2=++num;//前置,先自增后操作相等性判断运算符:==/!=1、比较基本类型:值相同返回true,不同返回false2、比较引用类型:指向相同对象返回true,不同返回false如:=newTeacher(1001,steven,30,true);Teachert2=newTeacher(1001,steven,30,true);Teachert3=t1;System.out.println(t1==t2);//falseSystem.out.println(t1==t3);//true赋值转换规则doublefloatlongintshortbyte1、范围小的值或变量赋值给范围大的变量自然转换2、范围大的值或变量赋值给范围小的变量强制转换如:doubled=100.9;inti=(int)d;特例1、int数赋值给byte和short类型变量时,在不超出类型存储范围的情况下,可以执行自然转换如:byteb1=100;//正确byteb2=128;//错误intnum=100;byteb3=num;//错误(num不是数值,是变量,所以不可以)2、char类型在存储中采用的方式和整数类型相同,也可以执行类型转换,和short类型进行转换时,双向赋值都需要强制转换移位操作符1、:右移在高位补入符号位移1位相当于执行除以2,不会影响符号位2、:无符号右移在高位补入0如果被移位数是负数,则会对符号进行反转,结果不再相当于除以2,使用较少3、:左移在低位补入0左移1位相当于执行乘2,不会破坏符号位10000000000000000000000000001100100Java使用补码表示负数负数等于正数取反后加1如:-100对100取反11111111111111111111111110011011加111111111111111111111111110011100(-100的补码)八进制表示:0开头十六进制表示:0X或0x开头如:0770x4位操作符:对2进制位进行操作&:位与,操作的两个位都为1,结果为1,其余都为0|:位或,操作的两个位都为0,结果为0,其余都为1~:位取反,~0=1、~1=0,单目运算符^:位异或,操作的两个位相同结果为0,不同为1如:100011001005000110010&00100000|01110110^01010110~10010011011逻辑操作符操作的对象是boolean类型,结果也是boolean类型&:逻辑与,两个操作数都是true,结果为true,其余为false|:逻辑或,两个操作数都是false,结果为false,其余为true!:逻辑非,单目操作符,!true=false,!false=t

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功