java学习笔记_第1页
java学习笔记_第2页
java学习笔记_第3页
java学习笔记_第4页
java学习笔记_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档Java学习笔记Java概述java语言是解释执行,java源码是通过编译生成一种特殊的.class的中间字解码文件,然后再有JVM进行解释执行。java语言对指针进行了上层的封装,它保证能够通过这个指针(引用)来访问有效的内存单元。java语言不允许多继承,使继承关系成树装图,每个类都只能由一个父类。java语言的开发效率高,但执行效率低。(相当于c+的55%)java的垃圾回收机制,在java中new的对象不需要向c+一样进行delete操作,JVM会根据情况回收垃圾对象。(懒汉机制,等待资源没有的时候才回收)我们只能够建议JVM进行垃圾回收,例如(System.gc() RunTime.gc()这两个方法就是建议JVM进行垃圾回收的方法)JDK,java开发工具包(类库和运行命令),JRE,java运行环境,JVM,java虚拟机(解释执行的核心,对字节码进行翻译成运行环境的机器码,它可以屏蔽平台差异。JVM是不跨平台的。)JAVA_HOME,指明JDK安装的位置,CLASSPATH,指明类文件的位置,PATH,指明命令的可执行文件的位置。java源文件的文件名必须和文件中定义public class的类名(大小写页要相同)相同。java源代码中的main方法的定义写法。main方法是程序的入口。public static void main(String args)System.out.println(Hello world);java源文件也要先编译,使用javac xxx.java格式的命令得来编译,使用java xxx来运行。定义包结构要放在有效代码的第一行,package xxx.xxx,包的定义在一个程序中只能由一个,在加上包定义之后编译可以使用javac -d 路径 xxxx.java,这个-d这个命令行的参数可以指定包结构的位置“.”代表当前目录。在运行时要使用类的全名java xxx.xxx.xxxx用包名以点分隔。运行时要在包结构的上一层目录来运行。java中的注释单行注释 /.多行注释 /* .*/文档注释/* .(换行标签)*/,用javadoc命令可以根据原码中的文档注释生成注释文档(html格式)。文档注释中可以使用html标签。javadoc -d 路径 (指定注释文档的保存路径)文档注释一般写在类定义之前,方法之前,属性之前。在文档注释中可以用 author 表示程序的作者,version 表示程序的版本,前两个注释符号要写在类定义之前,用于方法的注释param 对参数进行注释,return 对返回值进行注释 throws对抛出异常的注释。jar命令用于打一个xxx.jar文件用法:jar ctxuvfm0Mi jar-文件 manifest-文件 -C 目录 文件名 .选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用ZIP压缩格式 -M 不产生所有项的清单(manifest文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理。清单(manifest文件名和存档文件名都需要被指定,按m 和 f标志指定的相同顺序示例1:将两个class文件存档到一个名为 classes.jar 的存档文件中: jar cvf classes.jar Foo.class Bar.class示例2:用一个存在的清单(manifest)文件 mymanifest 将 foo/ 目录下的所有 文件存档到一个名为 classes.jar 的存档文件中: jar cvfm classes.jar mymanifest -C foo/ 。一般在使用使用jar cvf 文件名.jar 文件所在路径(xxx/xxx/xxx.class)也可以压缩一个目录,只要在制定路径是指定为文件夹,jar命令的命令行参数在使用时可以以“-”开头,也可以不用。java程序的运行过程,首先是启动java虚拟机,然后就是去找.class文件,先是从系统的类库中找(系统之会在跟目录下查找,所以需要完整类名),如果找不到的话会去CLASSPATH所设置的目录去找。然后加载到java虚拟机中。系统会在每个java程序中隐含导入了java.lang这个包,import 包名,导入包中的类文件。java.lang包,这是一个基础包。java.util包,这个包是工具类的包。java.io包,这个包是用于输入输出操作的包,这个包是用于网络编程。java.awt,java.swing,javax.swing,java.event等包用于图形编程用的包。applaction java的应用程序,java应用程序中必须有一个main()方法。标识符和关键字Java代码中的“;”、“”、“ ” Java语句以分号分隔,Java代码块包含在大括号内,忽略空格.标识符 1) 用以命名类、方法和变量、以及包遵守JAVA的命名规范类以每个单词都以大写字母开头。方法和变量第一个字母不大写,其他照旧。2) 只能以字符、“_”或“$”开头; 3) 无长度限制。java中的关键字goto和const在java中虽然不再使用但是还作为关键字存在java中没有sizeof这个关键字了,java中的boolean类型的值只能用true和false,且这两值也是关键字。java语言中没有无符号这个关键字(unsigned)java中的数据类型 1) 整型 byte 1字节 8位 -128到127 short 2字节16位 -215到215-1 int 4字节32位 -231到231-1 long 8字节64位 -263到263-1 2) 浮点类型 float 4字节32位 double 8字节64位 3) 字符类型 char 2字节16位 4) 布尔型 boolean false/true 注:1) char是无符号的16位整数,字面值必须用单引号括起来; a 2) String 是类,非原始数据类型; 3) 长整型数字有一个后缀为“L”或“l”,八进制前缀为“0”,十六进制前缀为“0x”; 4) 黙认浮点类型为double; 5) float数据类型有一个后缀为“f”或“F”,Double数据类型后可跟后缀“D”或“d“ 6)char类型也可以用通用转译字符,但是不能用ASCII码。可以用“u0000”这种格式,因为char型中使用的是unicode编码方式。 注:整型值存放,正数存放原码(二进制码),负数则存放补码(原码按位取反末位加一)。 注:实型值在存储时会损失精度,所以不要直接比较两个实型值。系统默认的实型都是double型,要使用时要在数据后加个f,或者强行转换。强转(占字节数大的类型转到占字节数小的类型)时会放弃高位值只取低位值。java中的数字数据类型减灾由占字节数小的类型到占字节数大的类型的可以有自动转换,反之则需要强行转换,char型和int型之间可以相互转换。char和short不能像户转换。注意:隐式类型转换;a 运算符 b ,如果a,b中有任意一个是double型,前面运算的结果就是double型,如果a,b中有任意一个是float型,前面运算的结果就是float型,如果a,b中有任意一个是long型,前面运算的结果就是long型,如果a,b中没有double、float、long型,那么其结果就为int型。所有基本数据类型在使用时会事先分配空间,只本身就存在空间中,在传递时,就是值传递,不是引用传递。在类中定义的方法在返回值前加上static修饰符就可以在main方法中调用了。如果不用static那就需要在main方法中创建对象,使用对象来调用对象的方法。public class Testpublic static void main(String args)Test t=new Test();int b=1;int c=2;int a=new int10;t.sqort(a);add(b,c)public int sqort(int a).static int add(b,c).java中的运算符(java的运算符的优先级和结合性和c+相同)System.out.println(3/2) 按整型计算 得11) = 前面是零补零,前面是一补一; 2) = 无符号右移(强制右移都会移进一),=和=对于负数不一样 正数:右移n位等于除以2的n次方 负数:变成正数。3) & 短路与,前面为假,表达式为假,后面的操作不会进行,& 会对所有条件进行判断。 4) | 短路或,前面为真,表达式为真,后面的操作不会进行,| 会对所有条件进行判断。 例: if(a3&(b=a)=0) b赋值 if(a3&(b=a)=0) b不赋值5)instanceof,是用于判断一个对象是否属于某个类型6)java中的求余运算符“%”可以对两个实型变量求余注:按位与是为了让某些位置一,按位或是令某些位置零,按位异或是令某些位取反。注:使用左右位移和无符号右移运算符的使用方法是 变量名=位移位数 (前两个运算符是不会忽略整形符号位,也称逻辑位移),变量名=位移位数注意:左右位移和无符号右移运算符只能用于整形及其兼容类型(byte,int,short,long)注意:java程序的运行过程,首先是启动java虚拟机,然后就是去找。class文件,先是从系统的类库中找(系统之会在跟目录下查找,所以需要完整类名),如果找不到的话会去CLASSPATH所设置的目录去找。然后加载到java虚拟机中。如果要使用到其他的在JAVA_HOME中没有的类或者是其他公司提供的第三方的。jar(jar包)文件时,要把它的路径及文件名加到CLASSPATH中。java的流程控制控制流if()if().elseif().else if().else注意:else只是和其上面的同层的最近的if()来配对。switch()case a:.case 1:break;default:注解:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在switch()中使用。case块中不加break时顺序执行下面的语句。循环语句for(int i=0;in;i+)while()do while();-注意加分号例子:loop:for(int i=0;in;i+)for(int j=0;jDoubleString -(Integer.valueOf() )-IntegerInteger-(x.toString() )-Stringint-(100+”)-StringString-(Integer.parseInt() )-intInteger-(IValue() )-int学会查看javadoc的帮助文档。要先关注要使用方法的返回值类型,也就是要获得内容的类型,然后看方法名,JDK中的方法名基本上是见名知义,参数表,就是看需要什么才可以获得的需要的那些内容,也要看自己能够提供什么。注意:“=”在任何时候都是比较地址,这种比较永远不会被覆盖。程序员自己编写的类和JDK类是一种合作关系。(因为多态的存在,可能存在我们调用JDK类的情况,也可能存在JDK自动调用我们的类的情况。)注意:类型转换中doubleIntergerString之间的转换最多。(注:所有使用内部类的地方都可以不用内部类,但使用内部类可以使程序更加的简洁,便于命名规范和划分层次结构)。内部类是指在一个外部类的内部再定义一个类。*内部类可为静态,可用protected和private修饰。(而外部类不可以:顶级类只能使用public和default)。*java文件中没有public class ,允许类名和文件不同名。内部类内部类也就是定义在类内部的类。内部类的分类1,成员内部类、2,局部内部类、3,静态内部类、4,匿名内部类(图形是要用到,必须掌握)。成员内部类四个访问权限修饰符都可以修饰成员内部类。内部类和外部类在编译时时不同的两个类,内部类对外部类没有任何依赖。内部类是一种编译时语法,在编译时生成的各自的字节码文件,内部类和外部类没有关系。内部类中可以访问外部类的私有成员。作为外部类的一个成员存在,与外部类的属性、方法并列。内部类和外部类的实例变量可以共存。在内部类中访问实例变量:this.属性在内部类访问外部类的实例变量:外部类名,this.属性。在外部类的外部访问内部类,使用out.inner。成员内部类的特点:1.内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为private,但是对于处于其内部的内部类还是可见的。)2.用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。注意:内部类是个编译时的概

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论