




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 声明和访问控制l 创建数组声明:int num; 或 int num; 分配空间:num = new int5;int num = new int5;int k = new int 0,1,2,3,4;Java数组无论赋值与否,总是被设定为默认值,整型为0,布尔型为false。数组的大小不能被改变数组从0开始索引没有必要确定数组元素的数量 int k = new int5 0,1,2,3,4; (错误)l 定义类和变量所有Java 类都是 Object 类的后代,如果extend 关键字没有被使用,这个类将是 Object 派生的。方法变量将会“屏蔽”类变量。修饰符说明Private除了变量所在的类,其它任何类都不可以访问这个成员无访问修饰符所谓的包访问权限,同一个包内的其它类可以访问这个成员protected与无访问修饰符具有权限外,还允许子类访问这个成员public具有全局可视性,任何其它类都可以访问这个成员StaticStatic修饰符可应用于内部类,方法和变量。Static修饰变量代表该变量在类中只有一个copy(相当于只有一个空间,无论创建的实例有多少,最终的值将会是最后一次赋值的值);不能在Static方法内部访问一个非Static的变量;Static方法不能在子类中重写(override),但可以被隐藏。Final用于类,方法和变量。Final类不能被继承(不能作为父类);任何final类中的方法自动成为final方法;final修饰方法代表该方法不能被重写(override);final变量的值不能被改变。Native用来调用非java编写的外部程序,如 public native void ttdf();Synchronized防止多个线程同时访问相同的代码段。Transient表明类序列化时,变量不必序列化。transient可以修饰变量Volatile表明变量由于线程可能异步修改。abstract被用于类和方法。在用于方法上时,方法没有方法体,代码只能在子类执行时运行。Abstract方法不能用final,static修饰如果类中有abstract方法,那么该类必须被申明为abstract; abstract类中可以含有非abstract方法;继承abstract类的子类要么实现父类的abstract方法,要么自身也声明为abstract类(abstract类的子类可以是abstract)。l 构造方法构造方法用来初始化类中的值;有和类同样的名字并没有返回值;如果一个方法有了类相同的名字但有返回值,它不是构造器;一旦创建了任何的构造方法,需要创建一个零参数的构造方法;构造方法不能是native,adstract,static,synchronized,final。l 调用基类的构造方法构造方法是不能够被继承的,想要得到父类的构造方法,需要使用神奇的关键字super。关键字this调用当前类中的其他构造函数;构造方法中使用this或super必须第一个调用;构造方法中,this与super只取其一,不可同时使用。l 重载(overload)和复写(override)重载一个类中的两个或多个方法具有相同名字,且不同的参数类型或顺序。返回类型对区分方法没有帮助。 复写子类中的方法;在子类中完全取代父类中同方法名的方法功能;与父类中的方法有完全相同的签名,包括返回值。访问修饰符可以不同,但子类比父类不能小,可以大。Static方法不能被重写;final方法不能被复写2. 流程控制和差错处理l if & switchif语句只能用boolean类型参数;boolean默认值为false。switch语句只能用byte , char , short , int 类型作参数;switch语句中,case语句只在遇到break语句的时候才会终止执行;default语句并不是必须在case语句的结尾处出现。l For & whileFor (initialization; conditional expression; increment)do-while与while的区别在开do-while中的语句至少执行一次。l Break & continuebreak与continue只会中断当前的循环,而与label搭配,可以中断多层循环。Label1:OuteriterationInneriterationbreak; /1continue; /2.Continue label1;/3.Break label1; /41中断内层迭代,回到外层迭代2将执行点移至内层迭代的起始处3同时中断内层迭代,再从外层迭代开始4同时中断内外层迭代,不再进行任何迭代务必记下。在java中使用label的惟一理由是跳过一个以上的嵌套层次。l try/catch语句与方法覆写finally子句总是会执行。但如果try/catch中有System.exit(0),finally语句不会执行。Catch子句的捕捉异常的次序要与异常的层次结构相一致。子异常要先捕捉,父异常后捕捉。子类方法只能抛出父类方法所抛出的异常或它的子异常。但是,子类方法可以抛出少于父类的异常或干脆就不抛异常。l 断言(assertion)断言用于你认为某此东西必须是真的地方。例如:人的年龄必然大于0用于保证内部数据结构的正确不用于保证命令行参数的正确用于保证私有(private)方法参数的正确不用于保证公共(public)方法参数的正确用于检查任何方法结束时状态的正确不用于检查外界对公共方法的使用是否正确用于检查决不应该出现的状态不用于保证应该由用户提供的信息的正确性用于检查决不应该出现的状态,即使你肯定它不会发生不要用于代替if语句用于在任何方法的开始检查相关的初始状态不要用做外部控制条件用于检查一个长循环执行过程中的的某些状态不要用于检查编译器、操作系统、硬件的正确性,除非在调试过程中你有充分的理由相信它们有错误断言的语法assert somebooleatest 或 assert somebooleantest : someinformatinvemethod3. 垃圾收集(garbage collection)当内存中的对象不再被利用时,系统就要回收内存。Java中不用担心垃圾收集,系统的垃圾收集器会自动回收没有引用的对象所占用的内存。注意:你能建议或鼓励 JVM进行垃圾收集但你不能强迫它。你可以使用system.gc()来建议垃圾回收器收集垃圾,但并不能保证执行。Finalize()方法,在对象消毁之前整理其资源。当垃圾收集机制认为对象上没有引用时(对象的引用值设置为NULL或者对象指向了其他的对象),它调用垃圾收集器来回收对象。当对象非可达时,就是可能进行回收。非可达的原因为:对象明确被设置为null或指向它的引用数为04. 语言基础l 包,导入,内部类与接口包语句包声明语句必须位于其它语句之前,除了注释语句导入语句导入语句位于包语句之后,其它语句之前。内部类(Inner Class)内部类可以有任何的存取控制符例如protected, public, private.内部类可以定义成abstract;可以在内部被继承;可以继承外部类非静态inner classes不能有静态的方法、变量等Inner class能够存取outer class的所有实例变量(包含private修饰的变量),就像类中的方法能够存取方法所在类的所有变量一样;如果inner class定义在方法中,则inner class只能访问方法内的final变量(常量),但可以访问outer类的任何变量;静态方法中可以定义内部类;方法中的内部类不可以是static的!Outer i = new Outer(); /先创建外部类的对象 Outer.Inner i = i.new Inner();也可:Outer.Inner i = new Outer().new Inner()Public void init() Thread t = new Thread() /some codes ; /匿名内部类(anonymous inner class)象语句一样被定义,所以要加分号! t.start(); 匿名内部类没有构造方法!Java隐式的调用其父类的构造方法! 匿名内部类不能是static,abstract的static inner class静态内部类如果一个内部类是静态的,那么这个类就自动的成为顶级(top-level)类即普通的类。静态内部类中的方法(无论是静态的方法还是非静态的方法)只能直接访问外部类中的静态成员,要访问外部类中的非静态成员,则必须创建外部类的对象。接口 ( interface )接口中的方法不包含方法主体。接口也可定义数据成员,但这些数据成员自然而然的成为了public,static和final.;接口中的方法即使没有声明为public它们也会是public, 所以实现接口时, 必须将实现的方法定义为public。l 变量声明Java保证变量绝对会在被使用前初始化。每个基本类型的数据成员都保证有初值(0)。而引用数据类型的数据成员的初值为null.局部变量(在方法中定义的变量)不能缺省值,故使用前必须明确赋予初值。数组总是可以设置缺省值的。 byte -128127short -3276832767 char 0655365. 运算符和赋值无符号右移位操作符,它采用零扩展,高位插入0.左移位运算符,将运算符左边的运算对象向右移动运算符右侧指定的位数,有符号右移位运算符使用了符号扩展。若值为正则在高位插入0,若值为负则在高位插入1。左移,右移:左用乘,右用除。两种方法创建字符串String s = new String(“Hello”); 内存地址String s = “GoodBye”; 指针相同equals() 和 = =equals()用于检测对象的值,即检测对象所引用的内部数据的值。只能用于引用类型。=用于检测对象引用自身,是否指向同一块内存地址。可用于基本类型,也可用于引用类型。当用于引用类型时,两边的类型必须一至。String类,String对象在代表相同字符串时相等。equals()返回真。Boolean对象在值相同时相等。equals()返回真。类型不兼容的两个对象可以用equals(),但是只要比较的对象类型不同(哪怕值相同),永远返回false& | & | &,| : 位操作符用于整数型的基本数据类型。对于boolean数据来说,逻辑与位操作符大约相同,位操作符没有短路行为。&,| : 逻辑操作符&,| 的短路行为当第一个操作数为false时,如果用 & 运算符时,则不检查第二个操作数就直接返回false。当第一个操作数为true时,如果用 | 运算符时,则不检查第二个操作数就直接返回true。is a & has a is a :“继承”语法has a :“组合”语法Math 类切断函数:floor,ceil,roundMath.floor(num) 返回小于等于num的最大整数(double类型) Math.floor(-1.1f) = -2.0 Math. ceil (num) 返回大于等于num的最小整数(double类型) Math. ceil (-1.1f) = -1.0Math. round (num) 返回与num之差绝对值最小整数(整型) Math. round (-1.6d) = -26. 线程class MyClass implements Runnable public void run() 创建两个线程并启动他们MyClass mc = new MyClass();MyClass mc2 = new MyClass();Thread t = new Thread(mc);Thread t = new Thread(mc2);t.start();t2.start();启动线程调用start()方法而不是run()方法,你可以直接调用run(),但这时run()不会作为线程的一部分。线程阻塞的原因:1. 睡眠状态 sleep();2. 调用wait();3. IO操作引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区信息化配套服务协议简单版样式4篇
- 2025行业国际化发展策略分析
- 中国银行2025阿坝藏族羌族自治州结构化面试15问及话术
- 邮储银行2025宁德市秋招无领导小组面试案例题库
- 中国银行2025深圳市半结构化面试15问及话术
- 建设银行2025鄂尔多斯市半结构化面试15问及话术
- 北京大学爱心捐赠协议书4篇
- 工商银行2025乌鲁木齐市秋招笔试价值观测评题专练及答案
- 工商银行2025佳木斯市信息科技岗笔试题及答案
- 借用个体工商户协议3篇
- DBJT15-110-2015 广东省建筑防火及消防设施检测技术规程
- 2025年环境保护法知识竞赛题库(附含答案)
- 2025至2030年中国海岛文化旅游行业市场运营现状及投资规划研究建议报告
- 四川信达饰品科技有限公司年产1亿包家居水晶饰品项目环评报告
- 4.2认识一次函数第1课时“均匀”变化的现象课件北师大版八年级数学上册
- 文物、古建筑、塔类、寺庙类施工方案、施工组织设计【高分可编辑】
- 生产开停机管理办法
- 养老护理员培训排泄照护
- 2025年小学道德与法治课程标准(2022版)考试测试卷及答案(共三套)
- 保监会保险股权管理办法
- 傣文教学课件
评论
0/150
提交评论