java 基本概念

来源:互联网 发布:mac如何安装双系统 编辑:程序博客网 时间:2024/05/21 12:31



Java基础课笔记

Java三大特性:

封装:

将变化隔离;

便于使用;

提高重用性;

提高安全性;

 

a) 对成员变量的封装

eg: 用数组构建一个队列或栈

 

b) 对成员方法的封装

eg: 求一个整型数的2816进制数;

 

c) 对对象的封装

eg: 单例模型

继承:

 

1)书写规则:<modify>  class  <name>  extends <class name>

继承特性:

a) eg : publicclassStudentextendsPeople{...} ;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(){

....

 

接口对象尽量少,以23个比较常见;

 

(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.动态绑定:(函数没有privatefianalstatic修饰

 

 

instenceof :判断是否是类的对象;

 

 

 

多态条件:

多态体现在子类和父类之间;

必须有复写的方法;

 

内部类

匿名内部类: new Object() {

.......

}; //new Object 的内部类;

多用于传参;

 

 

 

包头不包尾;

/*****************************************************************************/

Java背景:

1. J2ee,(企业版)包含servlet jsp技术;

2. Jre, ——java运行环境;

3. Jdk,——java开发工具集;(包含jre

JDK1.1 JDK1.2JDK1.6(6.0) JDK1.7(5.0) J2EEJ2MEJ2SE

 

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

字节流:

inputStream

outputStream

字符流:

Reader

Writeer

 

记:windows 换行符:\r\n

0 0