1.8个bit(位)为一个单位 byte 字节;计算机最小单位为字节
2.8进制是以0开头的;16进制是以0x开头。
3.负数的二进制就是正数的二进制取反加1(用一个字节运算)
-6:的二进制
00000110
11111001
+ 00000001
= 11111010
4、二进制都是1,对应的十进制是-1
5.数值型,整数类型: byte short int long
1 2 4 8 字节
浮点类型:float double
6. 6在内存中是:(int)
00000000 00000000 00000000 00000110
byte
00000110
7. char 类型在内存中占2个字节;一个中文也是2字节。
8.&与&&的区别
&;两边都参与运算
&&;当左边为false ,右边不参与运算
9.|和||
|:两边都参与运算
||:当左边为true,右边不参与运算
10.左移:就是乘以2的次幂运算 移几位就是几次幂
右移:就是除以2的次幂运算 移几位就是几次幂(右移时,原最高位是神魔,空位就补什么)
>>>无符号右移:无论原最高位是神魔,空位都补零
11.与&:
可用于获取二进制中的有效位1
---------------------------------------------------------
第一章
1.Java Runtime Environment (JRE)JAVA运行环境(适用于只运行不开发)
2.Java Development Kit (JDK)Java开发工具包(适用于开发java)
3.1.JRE内部有一个java虚拟机(Java Virtual Machine ,JVM)以及一个标准的类库(Class Library)
2.JVM是一个虚构出来的计算机,能够仿真模拟各种计算机功能,有自己完善的硬件架构,
如:处理器,堆栈,寄存器等,还具有相应的指令系统
3.java虚拟机负责运行一个java程序,主要任务是装载class文件并且解释执行其中的字节码
启动一个java程序时,一个计算机实例也就诞生了;退出程序时,这个虚拟机实例也就随之消亡了
3--------------->3
3.断点调试 f6
4.java虚拟机实例通过调用某个初始类的main()方法来运行一个java程序
-----------------------------------------------------------
第二章
JAVA练习
JAVA各章习题及答案http://wenku.baidu.com/link?url=dC27PBAiBgodY23GLj6S2wYGKcnxDJ3AC2m1JMyyB3aUhaWcPzVZBvh5INiBEE0bEEVs_rc8XX9q-972-WilJOBVtoXDN_H0c6A4vO4wBp7
JAVA编程题全集(100题及答案)http://wenku.baidu.com/link?url=reXf0hNlOpGBSi3iYXAHOqwex_DUYIF4a2RRN2d7ex1zN50qjel3LGB6hMpTp3vrt1qZ5qLOTxJIfn4WA33u54aCKgylkyWVxoZR9C8E8Bq
------------------------------------------------------------
第三章
http://www.docin.com/p-904975161.html
http://wenku.it168.com/d_000661992.shtml
------------------------------------------------------------
第四章
多态和继承
http://wenku.baidu.com/link?url=4kZCAq87BmnGJcjYDZnn751D2qLjzrHj0kKy9VhLSjraFEu0OB9_RJQYB2Z-gm8jpLkOL_FZB-PB4ufuZ7HsOGIaaQ9XcihDo7uHGf9aC7G
------------------------------------------------------------
第五章
------------------------------------------------------------
第六章
方法method 车辆vehicle customer(顾客)与consumer(消费者) data数据
界限bounds 类相等equals
1.类 class 对象 object 实例instance 索引 index 价值value 抽象的abstrast
2.构造器的作用:完成对象的实例化(创建对象)和成员变量的初始化
3.通常一个类中不止一个构造方法,而是有多个不同参数的构造器,用户可根据需要选择不同构造器创建对象
4所有的对象都是通过构造器来创建的
也可以说任何对象都是通过内存分配操作符new创建和开辟内存空间,(在堆中)
5 java中每个类都至少有一个构造器 构造器(Constructor)
6 垃圾回收机制仅仅作用于堆内存,与栈内存无关
a对象的引用被赋值为null b一次性使用的匿名对象 c.超出生命周期
7.面向过程思维方式:分析出解决问题的步骤,然后一步步用方法实现,最后通过方法调用解决问题
面向对象思维方式:把问题域分解成各个对象,对象赋予相应的属性和行为,通过对象之间的协调解决问题
8.类
类:是一组具有相同属性和行为的对象的抽象 (类是抽象)
作用: 用来创建对象,对象是类的一个实例 (对象是实例化)
9.类和对象的关系
抽象和具体的关系
每个类在某一时刻都有零个或多个实例,类是生成对象的模板
*一个类定义了那些数据来描述属性,每一个对象里有相应的属性值数据
*一个类通过一系列方法来定义行为,每一个对象能激活这些方法
10.封装:作用,意义 ??
继承:作用,意义 ??
多态:作用,意义 ??
11.成员变量: 修饰符,类型,属性名=[默认值]
方法 : 修饰符,返回值类型,方法名(形参列表){语句}
类变量 : 用static修饰的成员变量,他们在类被载入时创建,只要类存在,static变量就存在
实例变量: 类体中声明的成员变量,即非static的属性,也是全局变量
局部变量: 方法体中声明的变量或是方法的形参,只在方法调用过程中有效,方法调用结束后失效
静态变量; 在类中声明为static的属性
12 this就代表对象,哪个对象调用了this所在函数,this就代表哪个对象
一般函数不可以调用构造函数,构造函数可以调用一般函数
person(String n){name = n;cry();}
调用其他构造函数的语句,必须定义在构造函数的第一行(所以只能调用一个构造函数),原因:初始化动作要先执行
13 可以用this标识哪个变量是成员变量,这个标识可以省略不写;但是,当局部变量和成员变量同名时,必须用this来标识成员变量
------------------------------------------------------
第七章
1.子类继承父类的所有属性和方法,同时又可以增加自己的属性和方法
2.java只能单继承 ,一个子类对一个父类;一个父类对多个子类
3.子类是父类,父类是子类(不是final的)
4.子类实例化时,先实例化其父类,再实例化子类(先调用父类构造器,在调用子类构造器)
5.子类创建构造器时,必须调用父类的构造器(使用super关键字)
6.Ouer外访问Inner * Ouer内访问Inner
Outer o = new Outer(); * Inner i = new Inner();
Outer.inner oi = o.new inner(); *
7.一个类只要提供了构造函数,就可以产生多个对象
8.接口可以被多重implements,抽象类只能被单一extends
-----------------------------------------------------------
第八章
(ioexception)IO流异常。一般在读写数据的时候会出现这种问题。
java内部数据的传输都是通过流,或者byte来进行传递的。
就行一个文本文件。你可以通过in流写入到java中,
同时也可以通过out流从java(计算机内存中)返还给具体的文件。
(runtimeexception)运行时异常
2.异常记录:
3.方法重载和重写的区别
1.重写必须继承,重载不用。
2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常
==================================================================
1.Object类是所有类的超类
2.public class Stu im.. Comparable<Stu>{
}
3.TreeSet 不保证顺序,但可以做默认的字典paixu
依然不能存放重复的元素
4.&和&&的区别:
&:两边都参与运算。
&&:当左边为false。右边不参与运算。
|和 ||
| :两边都参与运算。
|| :当左边为true,右边不参与运算。
5,int a = 3, b;
b = (a++)+(++a)+(a++)*2+a+(++a);
// 3 5 5*2 6 7
System.out.println("a="+a+",b="+b);//a=7,b=31
6.类型名称 字节数 取值范围
byte 1 -128~+127
short 2 -32768~+32767
int 4 -2147438648~+2147438647
long 8 -9223372036854775808~+9223372036854775807
======================================================================
JAVA公开课 笔记
7.获取class的三种方式
一个类只有一个字节码文件,但可以创建多个对象
class对象的获取:
A:public final Class getClass()
Person p = new Person();
Class c = p.getClass();
Person p2 = new Person();
Class c2 = p2.getClass();
sop(p==p2);//false
sop(c==c2);//true
B:数据类型的class静态属性
Class c3 = Person.class;
sop(c==c3);//true
C:通过Class的静态方法
public static Class forName(String className)
Class c4 = Class.forName("cn.itcast.person");
sop(c==c4);//true
总结:自己写案例测试使用前,两种
在开发中,一般使用第三种,因为,第三种的方式可以通过配置文件
配置数据。灵活度较高
8、public class ReportTest {
public static void main(String[] args) {
Report r = new ReportImpl();//Report是个抽象类或者接口
r.print();
// 接着,我要使用另外的表头,正文等信息
r = new ReportImpl2();
r.print();
// 这个时候,如果你继续有新的要求,那么,你就继续添加实现类来实现Report这个打印功能即可
//不需要改变原有实现类,这就是模板方法模式
}
}
模板方法模式:
定义一个算法的执行骨架,将具体的算法实现延迟到子类完成。
为什么会有模板方法模式?
我现在有一个需求:
要求用户做一个打印程序:规定必须打印表头,正文,表尾3部分。
我们可以用一个简单的类就实现了。
这个时候,我们好像看不到任何问题。
但是,需求是在不断的变化的。
比如说:我想在表头做一些修改,怎么办?改动代码。
过一段时间,我又想在正文添加一些内容,怎么办?继续改动代码?
这样,如果还有其他的需求,那么,最终我感觉就崩溃了。
怎么解决呢?
就可以采用我刚才说的模板方法模式改进。
改进的过程请查看代码。
总结;
模板方法模式:
抽象的骨架类,具体的实现类。
优点:
使用模板方法模式,在定义算法骨架的时候,可以灵活的实现具体的算法。
满足用户多变的需求。
缺点:
假如算法骨架有改动,就需要修改抽象类,那么,具体的实现类,也会跟着
修改。
实际应用:
需求:计算一个程序的运行时间。
定义一个GetTime类。
定义具体的实现类。
long time = System.currentTimeMillis();//获取当期系统时间
=======================================================================
-----------------------------------------------------------------------
float f3 = 12.3f;//必须加f
long l2 = 300000000000L;//必须加l