学习JAVA1.docx
《学习JAVA1.docx》由会员分享,可在线阅读,更多相关《学习JAVA1.docx(23页珍藏版)》请在三一文库上搜索。
1、第一章1. Java语言拼写是大小写敏感的(Case-Sensitive);2. 一个源文件中可以定义多个Java类,但其中最多只能有一个类被定义为Public类;3. 如果源文件中包含了public类,那么源文件必须和该public类同名;4. 一个源文件包含多个Java类时,编译后会生成多个字节码文件,即每个类都会生成一个单独的”.class”文件,且文件名与类名相同。Java中的名称标准:包名:多单词组成时所有字母都小写 xxxyyyzzz类名接口名:多单词组成时,所有单词的首字母大写 XxxYyyZzz变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写
2、 XxxYyyZzz常量名:所有字母都大写。多单词时每个单词用下划线连接。 XXX_YYY_ZZZ文档注释 格式:/*注释文字*/对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式表达的该程序的说明文档。/*这是我的HelloWorld程序。author小强*/所有的byte型、short型和char的值将被提升到int型。System,out.println(a)System,out.println(,a,+1)前者:a后者:98第二章函数中只能调用函数,不可以在函数内部定义函数。重载的概念在同一个类中,允许存在一个以上的同名
3、函数,只要它们的参数个数或者参数类型不同即可。重载的特点:与返回值类型无关,只看参数列表。intadd(intx,inty)returnx+y;intadd(intx,inty,intz)returnx+y+z;doubleadd(doublex,doubley)returnx+y;)逻辑运算符用于连接布尔型表达式,在JaVa中不可以写成3x3&x3*2*2=12右移31=1-3/2=1无符号右移31=1-3/2=1&与运算6&3=2I或运算6I3=7A异或运算63=5反码6=-7位运算是直接对二进制进行运算。ScannerStr=newScanner(System.in);bytexz=By
4、te();SCanner类的作用是获取控制台的输入信息(SCanner.in),反应到Str。importJAVA时间格式:importJava.util.*;publicclassTestDatepublicstaticvoidmain(Stringargs)Datetoday=newDate();SimpIeDateFormatf=newSimpleDateFormat(yyyy年MM月dd日hh:mm:ssM);Stringtime=f.format(today);System.out.println(time);)格式里的时如果用hh表示用12小时制,HH表示用24小时制F月份中的星期
5、E星期中的天数JaVa中M2表示n和2进行异或。求一个数的平方,可以n*n;或Math.pow(n,2);java.Iang包在预编译时已自动导入单类型导入有助于提高编译速度其中aReleaseVersionw是发行版,wIntegrationVersionw是集成版,两版下的rtUpdateSite是在线安装连接,“ZippedUpdateSite”手动安装包,用于本地自己安装。我们一般选择优化了的“ReleaseVersion31400.0doublef2=314e-2;/314*10(-2)3.14没有后缀F/f的浮点数值默认为double类型。浮点数都有舍入误差,不能在内存中精确表示所
6、有小数。0.If与doubleb=1.010不想等。所以,慎用比拟。Java,math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。字符型 前面说过,JaVa用UniCOde编码,所以Char用来表示在UniCode中的字符。Unicode占2个字节,具有从O到65535之间的编码,u0000,至uFFFF,之间的16进制表示。ASCII码就是Unicode编码表中前128个字符。 再就是转义字符:CharC2=n;代表换行符 char也可直接当作正数来
7、用。intc=a,+2;输入c,为99.Boolean类型占1位直接用if(变量),if(!变量)形式判断true,false转换的时候,默认转换,是从“小”类型到大”类型。此处大小是指类型的表示范围,比方从Iong像float转换。而反过来,比方CharC3=5;虽然5在Char的表示范围内,但这是从int像Char类型的转换,必须强制转型,否那么输出错误。强转超范围的时候就会截断。当有类型提升的时候要强制转型:floata=1.0f;doubleb=3.23;floatc=(float)(a+b);大数溢出,注意先转型再计算。JDK7新特性intb=1_2312_3131;我们很容易就知道
8、这是1亿2312万3131.byteb=0000_0111;2023-07-111 .所有变量、方法、类名:见名知意2 .类成员变量、局部变量、方法名:首字母小写和驼峰原那么:monthsalary4 .常量:大写字母和下划线:MAX_VALUE5 .类名:首字母大写和驼峰原那么:Man,GoodMan三目运算符:intflag=x0?1:(x=0?0:-1);位运算:inti=14;int12=i3;/i/2/2/2eclipse快捷键a)命令提示:alt+/(main,syso)b)文件选择:i. Shift+上下左右,home,end键ii. Ctrl+Shift+左右单词选中c)删除一
9、行:ctrl+dd)复制一行到下面或上面:CtrI+alt+上下e)换行:all+上下f)编辑文件切换:ctrl+F6,或者CtrI+E,上下g)视图切换:ctrl+F7h)查看错误建议:ctrl+1i)导入类:ctrl+shift+oj)重命名:alt+shift+rSWitCh(表达式)case值1:语句序列;break;case值2:语句序列;break;default:默认语句;)case标签必须是整数(byte,short,char,int)或者枚举,JDK7.0可以使用字符串!。当需要先循环一次再判断的时候,记得还有do-whiIe可以用。打印九九乘法表”在for条件0内声明的变量
10、在整个for循环内都有效。对Java来说唯一用到标签的地方是在循环语句之前。不能频繁使用,注重代码可读性。outer:for(inti=101;i150;i+)for(intj=2;ji/2;j+)if(i%j=0)continueouter;)System,out.print(i+);JaVa中只有值传递。根本类型传递的是该数据值本身。引用类型传递的是对对象的引用。2023-7-12为什么需要package?1、解决类之间的问题。2、为了便于管理类,适宜的类位于适宜的包。importjava.util.*;导入该包下所有的类。会降低编译速度,但不会降低运行速度。如果导入两个同名的类,只能用
11、包名+类名来显示调用相关类:java.util.Datedate=newjava.util.DateO;staticimport静态导入(JDK1.5后增加,了解!):importstaticjava.lang.Math.PI;导入Uath类的PI属性然后,我们可以在程序中直接使用:System.out.println(PI);面向对象:以类的方式组织代码,以对象的方式封装数据栈:1 .每个线程私有,不能实现线程间的共享!2 .局部变量放置于栈中。3 .栈是由系统自动分配的连续空间,速度快,后进先出。堆:L放置new出来的对象!4 .堆是一个不连续的内存空间,分配灵活,速度慢!方法区(也是堆)
12、L被所有线程共享!2.用来存放程序中永远不变或唯一的内容:类代码信息、静态变量、字符串常量引用类型的概念1. java中,除了根本数据类型之外的其他类型称之为引用类型。2. java中的对象是通过引用来操作的。(引用:reference).说白了,引用指的就是对象的地址!JVM内存分析:内存分析期不翻D栈(三动分程连缮的H间,后送先出)堆:放Hnwdl的对象/javaPolV在此处加载Poly到方法区。常量池是共享的。publicclassPolypublicstaticvoidmain(Stringagrs)1、查找方法区内有没有StUdent类的信息,没有的话,加载2、加载代码,包括属性
13、和方法;StatiC变量;常量,常量也是对象3、在栈中创立栈帧,创立SI4、把new出来的Student对象放在堆中,初始化属性值Studentsi=newStudent();name的地址是常量池中高琦的地址si.name=高琦;si.age=18;C信息在堆上,c名字在栈上,指向堆上的地址,设为address】Computerc=newComputer();c.brand=”联想”;c.CpuSpeed=100;Sl在堆上数据中,COmPIlter地址也指向addresslsiputer=c;System.out.println(siputer.brand);没有被使用的对象,就是垃圾。1
14、 .程序员无权调用垃圾回收器。2 .程序员可以通过SyStem.gc().通知GC运行,但是JAVA标准并不能保证立刻运行。3 .finalize方法,是JAVA提供应程序员用来释放对象或资源的方法,但是尽量少用。重载:1、参数的类型、个数、顺序不同,构成重载。2、只有返回值不同,不构成重载。(只有返回值不同,在调用的时候,无法区分到底调用哪一个)STATIC1、StatiC声明静态成员变量,是类的公用变量,在类被载入时被显示初始化。2、StatiC声明静态方法,在静态方法中不能访问非StatiC成员3、直接通过,类名.属性;类名.方法名来调用Static,当然也可以通过对象调用。如下列图所示
15、在类初始化的时候,static变量和方法也进入了方法区。其中static方法指向类代码中相应的代码地址。当对象在堆中创立时,不包含StatiC元素,因为如上所说,StatiC元素一个类只有份,是公用的。因为StatiC方法先于对象而存在,所以不能使用this、SUPer关键词。2023-7-13this相当于隐含参数,相当于publicStudent(this)普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。无论有没有调用this,this总是传过去的。类中方法的代码是放在方法区共享的,所以调用方法的对象时需传参以区分不同的对象。this还有一个特
16、殊用法:在一个构造器中调用另一个构造器。例如,publicStudent(Stringname,intid)this();必须位于第一句this.name=name;this.id=id;publicStudent()System.out.printin(y1构造函数”);)用this调有参的另一个构造函数publicStudent(Stringname,intid)this(50);this.name=name;this.id=id;publicStudent(intage)this.age=age;面向对象三大特征:封装(encapsulation)继承(inheritance)多态(Po
17、IynlOrPhiSm)继承的优点:类是对对象的抽象,继承是对某一-批类的抽象(OODDesign),从而实现对现实世界更好的建模(00AAnalysisJo提高代码的复用性(OOPProgramming)o子类继承父类,得到父类的全部属性和方法(父类的构造方法除外)。没有手动继承的类,全部是默认extendsObjeCt类。重载是指一个方法名可以对应多个方法。重写指子类对从父类继承来方法的重新定义。重写与重载没有关系。重写toString方法:因为所有类都是Object的直接或间接子类,所有都可以重写Object的方法。重写方法不能使用比被重写方法更严格的访问权限。(由于多态)2023-7-
18、14SUPer是直接父类对象的引用,通过SUPer访问父类中被子类覆盖的方法或属性。除了Object类之外其他所有类的构造方法第一句总是super();任何类的构造方法中,假设是构造方法的第一行代码没有显式的调用super();那么JaVa默认都会调用super();this和SUPer只能在方法中用,方法隐含传递了这两个参数:eat(this,super)由图看出,首先main方法中,创立newBridO时,首先调用Bird构造方法中的SUPer(),SUPer指向直接父类Aninla1,在AninlaI中第一句话也是调SUPer,再指向直接父类Objeet。构造的时候是层层包裹的,首先是O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 JAVA1
