您的位置:首页 > 编程语言 > Java开发

java 基本概念

2014-11-01 12:52 204 查看
Java基础课笔记Java三大特性:封装:将变化隔离;便于使用;提高重用性;提高安全性; a) 对成员变量的封装eg: 用数组构建一个队列或栈 b) 对成员方法的封装eg: 求一个整型数的2、8、16进制数; c) 对对象的封装eg: 单例模型继承: (1)书写规则:<modify> class <name> extends <class name>继承特性:a) eg : public class Student extends People {...} ;Student 继承People的除了private的一切属性和方法(构造方法不能继承);b) Java中是单继承,但支持多层继承;c) 父类中private的不能继承; 任何java类及每一个java类都继承Object; (2)继承特性:a) 对成员变量的影响:成员变量 ;b) 对方法的影响:方法可以覆盖;(也叫方法重写,区分方法重载);c) 对构造函数的影响:创建子类对象时,先调用父类构造函数; Super函数只能出现在子类构造函数的第一行( 同this() );子类中默认都有super函数; 子类方法中默认有super指针,直接调用;//属于非静态方法,同this 指针;(3)什么时候用:大量重复代码,可以向上抽取; (4)抽象类(abstract ): 父类中是空的方法,用于子类继承实现; (5)接口:<public> Interface <接口名>{public static final int CONST = 10;public abstract void fun (); //抽象方法;}// 接口中只能有常量和抽象方法;class Student impliments <接口名> {public fun(){....}} 接口对象尽量少,以2到3个比较常见; (6)final a) 修饰类不可继承;b) 修饰方法不可复写;c) 修饰变量不可更改;d) System.nanoTime;();abstract class testTime{ final public long getTime(){ long start = System.nanoTime(); getCode(); long end = System.nanoTime(); return end - start; } abstract void getCode();}class getCode extends testTime{ void getCode() { // TODO Auto-generated method stub for(int i =0; i <1; i++); }} (7) public protected default private;多态: 1. 上转型对象(自动转换); 2.下转型对象(需要强转) 3.动态绑定:(函数没有private,fianal,static修饰) instenceof :判断是否是类的对象; 多态条件:多态体现在子类和父类之间;必须有复写的方法; 内部类匿名内部类: new Object() {.......}; //new 的Object 的内部类;多用于传参; 包头不包尾;/*****************************************************************************/Java背景:1. J2ee,(企业版)包含servlet jsp技术;2. Jre, ——java运行环境;3. Jdk,——java开发工具集;(包含jre)JDK1.1 JDK1.2 JDK1.6(6.0) JDK1.7(5.0) J2EE、J2ME、J2SE 1. Java源码,字节码文件,a) Javac编译产生.class文件,2. Jvm——java虚拟机;3. Java垃圾回收机制(GC);4. Jdk安装;-》javac环境配置----》java代码目录配置; Java基本概念:1. 基本数据类型;a) 数值型:byte short int long(默认值0); double float(默认值0.0 0.0f);b) 布尔类型:boolean(默认false)c) char 两个字节;char ch = “你”;(默认)2. 引用数据类型:数组,类,接口;(默认空null)注:float f = 100.0 错误表达,100.0默认double型,转换为float型精度缺少; 1. 构造函数;默认也有构造函数,无参无返回值; 给成员函数初始化;在创建对象的同时被调用默认构造函数随着自定义函数的定义而消失; 2. 函数重载; a) 函数名一样,参数不一样(个数不一样,类型不一样),根据参数识别; 3. static 关键字a) 静态成员只要加载类 就加载进内存;class people{Static String type = “ren”;Int age;}Main(){People.type;}加static的情况:属于类的特性;属于共享资源;b) 静态方法当方法中没有操作普通的成员变量和成员方法时,即可以加static;静态方法中不能操作普通成员变量;//静态方法中不能使用this 4. This关键字 class people(){Sring name;Int age;People(Sring name1, int age1){This.name = name1;This.age = age1;}}在stitic修饰的方法,不能调用this; 调用对象没有产生; 5. this() a) 出现在构造函数中;b) 出现在构造函数中第一行; 6. 自动装箱、拆箱 1. 自动类型转换 (扩大转换) 在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换: a)转换前的数据类型与转换后的类型兼容。 b)转换后的数据类型的表示范围比转换前的类型大。 2. 强制类型转换 /********************************补充笔记*************************/ Object 类; 父类引用指向子类;编译时检查父类中,执行时先调用子类;------------------动态绑定; 匿名内部类,用于传参; String str1 = “hahah”;——————hahah字符常量区,不可变; /*************************************************************/ 异常 Try{}Catch(){}语句; Throw抛出异常; 线程MyThread th = new MyThread();th.start();自动调用run方法;可以手动调用。th.run(); 调用接口run; 匿名内部类; t3.start();名内部类:工程中经常运用,用于传参; 临界资源的访问: 在run()中加锁;两个抢占临界资源的线程加锁对象必须一样,针对同一个对象; a)锁加在代码段上;——同步代码b)锁加在方法上;——同步函数,用this锁;(非静态锁用thi锁,静态的用fun.class对象) 加锁技巧; 线程挂起;People.boj.notify(); 叫醒另一个线程, 集合 集合的遍历——迭代器 迭代器:将集合的引用拷贝一份给迭代器; 常用集合操作方法之一; hashMap(); Set ss = mp.entrySet();Iterator it = ss.iterator();While( it.hasNext() ){Map.Entry map = (Map.Entry)} 懒汉式 饿汉式 单例模型(23种设计模型)
文件IO字节流:inputStreamoutputStream字符流:ReaderWriteer 记:windows 换行符 :’\r\n’
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: