Java学习笔记(1)

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

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

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

资源描述

GracefulfingertipsdancingtotheJava-1-Day01Day01Day01Day01Day02Day02Day02Day02JavaJavaJavaJava到底有哪些优势?1.跨平台(平台=OS)可移植性在不同的操作系统之上可以不用做任何代码的修改直接使用a)字节码文件:字节码文件不包括任何内存布局信息与操作系统和硬件毫无关系(Java的内存分布是在运行的时候才动态分配的)b)JVM:真正解释字节码文件内容并且和操作系统交互的部分Sun(Oracle)已经给每一款操作系统都写好了现成的JVMJVM组成部分:类加载器ClassLoader字节码校验器解释执行器(翻译)逐行的解释执行代码2.安全健壮3.面向对象面向过程:程序:函数+变量(算法+数据结构)面向对象:如:SmallTalk程序:对象和对象相互之间的“通讯”对象:属性和方法类:创建对象的模板具有相同特征的一类事物的高度抽象集合概念对象是类的实例化,类是对象的抽象化。引用4.动态更新5.简单!没有指针和相关的内存操作new内存操作gc内存回收清理Java中的回收机制:零引用回收问题:System.gc();Runtime.getRuntime().gc();调用gc的下一行是否回收?不一定6.免费开源搭建JavaJavaJavaJava开发平台1.JDK(JavaSDKjava开发工具包)SDK(软件开发工具包)JDK安装JDK1.55.0猛虎JDK1.66.0野马JDK1.77.0海豚JDKJREJVMJDKJava开发工具包JREJava运行环境JVMJava虚拟机JDK=JRE+常用工具JRE=JVM+核心类库JVM=三部分2.设置环境变量我的电脑-属性-高级-环境变量为了使开发过程变得更加简单快捷(问题:搭载Java开发平台最少设置几个环境变量?零个。为了方便,不是必要。)环境变量名字给谁用做什么用PATH操作系统更快的找到程序CLASSPATHJVM(类加载器)找到字节码文件JAVA_HOME其他Java程序找到JDKa)PATH就是为了在任何一个目录下都可以直接访问bin目录下的工具(命令)C:\ProgramFiles\Java\jdk1.6.0_06\binb)CLASSPATH默认值:.(当前目录)c)JAVA_HOME设置到JDK安装目录下JAVA_HOME:JDK安装目录下CLASSPATH:.PATH:%JAVA_HOME%\bin*环境变量名字最好全部大写*在CMD设置环境变量时=左右两边不要加空格*在CMD中定义任意程序环境变量:如:setPATH=E:\TTPlayerGracefulfingertipsdancingtotheJava-2-同时定义两个环境变量中间加分号,或者SetPATH=%PATH%;E:\TTPlayer分号后面不能加空格3.Java运行过程:编译期:Java源文件.java编译为字节码文件.class运行期:JVM--OS硬件编写代码HelloWorldHelloWorldHelloWorldHelloWorld如何编译java程序javac源文件的名字.java如何运行java程序java类名(没有扩展名)HelloWorld.javaHelloWorld.javaHelloWorld.javaHelloWorld.java代码:publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(Hello!!);}}public修饰符modifierstatic修饰符静态(不用通过对象调用)void方法返回值(表示这个方法不需要返回值)main标识符标识符Identifier1.必须是英文_$中文开头2.不能使用有特殊意义的名字(关键字)类名(接口名):每个单词首字母大写属性名和方法名:首字母小写,之后每个单词首字母大写包名:全部小写Themostcommonrelationshipsbetweenclassesare•Dependence(“uses–a”)•Aggregation(“has–a”)•Inheritance(“is–a”)类成员:类可以拥有三种成员:·字段:它们是类及其对象相关联的数据变量,保存着类或者对象的状态。·方法:它们包含类的可执行代码并定义了对象的行为·嵌套类(nestedclass)与嵌套接口(nestedinterface):它们是在其他的类或接口声明的内部声明的类与接口。类修饰符:·注解(annotation)·public:任何人都可以声明对这种类的对象的引用,或者访问这种类的公共成员。·abstract:抽象类,被认为是不完整的,所以我们不能创建抽象类的实例。通常这是因为抽象类包含abstract方法,这些方法必须在子类中实现。·final:final类不允许拥有子类。类不能既是final的又是abstract的。·严格浮点(strictfloatingpoint):声明为strictfp的类要求类中的所有浮点运算都是精确运算JavaJavaJavaJava当中的包(对应操作系统当中的目录)1.区分不同的命名空间2.对多个.class文件进行分类的归类编译语句:javac-d.HelloWorld.java-d自动创建源文件当中指定的包结构....在当前目录下创建目录结构运行语句:java包名.类名通过包名和类名来唯一确认一个类打包语句:package导包语句:import例:打包,源文件Student.java放在桌面,为了能够运行,定义主方法mainpackageiii.ii;publicclassStudent{publicstaticvoidmain(String[]args){System.out.println(Hello!);}}编译:打开CMD,输入“cd桌面”转到当前目录,编译语句:javac–d.Student.java运行:javaiii.ii.Student(通过包名+类名唯一确定一个类)例:导包,先写一个打包文件:packageiii.ii;publicclassStudent{publicstaticvoidSayHello()GracefulfingertipsdancingtotheJava-3-{System.out.println(Hello!);}}编译:javac–d.Student.java然后写导包文件:importiii.ii.Student;publicclassHello{publicstaticvoidmain(String[]args){Student.SayHello();}}编译:javacHello.java运行:javaHello生成帮助文档的常用工具javadoc语句:javadoc-ddoc源文件的名字.javaJava注释:单行注释/多行注释/**/文档注释/***/生成jarjarjarjar包jar包就是java当中可执行的压缩归档文件1.可执行2.压缩3.归档一个java程序可能涉及到很多个.class把它们都归纳在一起变成一个文件生成jar包语句:jarcvf名字.jar要放进压缩文件里的文件c创建新的归档文件v标准输出设备显示详细列表信息f指定归档文件的名字生成可执行Jar包具体步骤:1写.java文件如,写一个无限弹出计算器的代码publicclassTest{publicstaticvoidmain(String[]args)throwsException{while(true)Runtime.getRuntime().exec(calc);}}2编译.java生成.classjavacTest.java3将class文件打到jar包当中jarcvfname.jarTest.class4修改jar当中的清单文件,在第三行加入Main-Class:Test注意:Test前面有空格(终止程序的方法:在CMD中输入tskilljavaw)变量编程语言当中肯定要定义很多很多的变量来存储数据变量分类:1.定义在类体当中的变量成员变量实例变量publicclassHelloWorld{inti=100;//成员变量属性HelloWorld类型的对象都有一份的属性publicstaticvoidmain(String[]args){System.out.println(i);}}组成类的对象的属性依靠对象来存在的它是对象存储空间当中的一部分实例变量使用前不用初始化2.定义在方法体中的变量局部变量在自己所在的方法体当中可以使用出方法体消亡局部变量使用之前一定要初始化*局部变量和成员变量是可以重名的!在局部变量所在的方法体中直接出现变量名将代表局部变量publicclassTestStudent{publicstaticvoidmain(String[]args){Studentstu=newStudent();stu.setAge(25);System.out.println(stu.age);}}classStudent{intage;Stringname;GracefulfingertipsdancingtotheJava-4-publicvoidsetAge(intage)//{//stu.age=25;this.age=age;//实例变量和局部变量出现重名的时候,如果不写this.则这句没有意义,打印age的默认值0}}数据类型1.基本数据类型primitivetypes8种booleancharbyteshortintlongfloatdoubleFloating-pointnumberswithoutanFsuffix(suchas3.402)arealwaysconsideredtobeoftypedouble.Ifyouwanttoroundafloating-pointnumbertothenearestinteger(whichisthemoreusefuloperationinmostcases),usetheMath.roundMath.roundMath.roundMath.roundmethod:doublex=9.997;intnx=(int)Math.round(x);Nowthevariablenxhasthevalue10.1.boolean布尔型true/false2.char字符型3.整数型(符号位数值位)byte8位-128~127short16-215~215-1int32*long64即-2(n-1)~2(n-1)-14.浮点型(符号位幂指位数值位)float32位double64位*2.引用数据类型(自定义类型对象类型)无数种byteshort(char)intlongfloatdouble自动提升(就近提升)强制类型转换这种类型提升的规则,对于方法参数匹配同样适用publicclassTest{publicstaticvoidmain(String[]args){booleanflag=true;System.out.println(flag);charc1='中';charc2=97;charc3='\u0000';charc4='\t';byteb1=1;byteb2=2;byteb3=(byte)(b1+b2);//int类型强制类型转换inti1=45;inti2=031;//8进制inti3=0x31;//16进制longl1=1;longl2=1L;floatf1=0.1F;doubled1=0.1D;}}publicclassTestDataType{publicstaticvoidmain(String[]args){inti=10;get(i);}publicstaticvoidget(bytea){System.out.println(我是byte型);}publicstaticvoidget(longb){S

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

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

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

×
保存成功