java学习笔记
来源:互联网 发布:socket网络通信流程 编辑:程序博客网 时间:2024/04/29 23:04
递归:在方法内部对自身进行调用
聚合关系:XX是XX的一部分
面向对象:
1.
有哪些类,哪些对象
2.
每种类每种对象具有的属性和方法
3.
类和类之间具备什么关系
JAVA标示符命名规则:
1.标示符由字母,下划线,美元符号,数字组成
2.标示符由字母,下划线,美元符号组成
3.标示符大小写敏感,长度无限制
标示符不可以为关键字 例如:class,static
标示符中间不可以有空格 例如:Hello World
JAVA关键字:全部为小写
字符常量:单引号引起‘a’
字符串常量:双引号引起"aaaaa"
double d1,d2,d3=0.123
d1=0.0;d2=0.0 ;d3=0.123;
string :字符串类型
JAVA变量分类:
按变量的位置划分:
局部变量:方法或数据块内部定义的变量(包含方法参数:args)
成员变量:
凡是在大括号里面声明的变量出了大括号就没人认识了
按数据类型划分:
基本数据类型:四类八种
逻辑性:boolean
文本型:char(2)
整数型:int (4) long(8) short(2)byte(1)
浮点型:float(4) double(8)
引用数据类型:
汉字编码使用的是JBK
基本数据类型的转换:
布尔类型不可以转换为其他类型
整型,字符型,浮点型之间的转换:
容量小的自动转换为容量大的 int<long<float<double
byte ,short,char之间不会互相转换,先转换为int类型
容量大的转为容量小的要强制转换
多种数据混合运算都要转为容量大的
实数常量(2.1)默认double
整数常量(123)默认int
字节型,表示为byte,在java中占一个字节;表示数的范围:其中一位用来表示符号(+/-)-128~~127
整型,表示为int,在java中占四个字节;
长整型,表示为long,在java中占八个字节;
短整型,表示为shot,在java中占两个字节。
比如说,实数型又包含了:
单精度浮点型,表示为float,在java中占四个字节;
双精度浮点型,表示为double,在java中占八个字节
浮点数默认是double类型。
如果想使用一个float型的浮点数,应该在浮点数后添加F或f。
推荐使用double型的浮点数。
线程同步的方法的使用。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切地唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
2.Exception与Error的区别在哪里?
Exception表示需要捕捉或者需要程序进行处理的异常。
Error表示系统级的错误和程序不必处理的异常,
3.一个类被声明为final类型,说明这个类的性质。
表示该类不能被继承,是顶级类。
4.stack和heap的区别在哪。Bihuman云计算培训中心。
stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。
heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。
5.谈谈finally, final的区别。
finally—异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定 初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
接口的特点
1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)
2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化
3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法
4、接口中没有构造方法,不能被实例化
5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口
6、Java接口必须通过类来实现它的抽象方法
7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例
9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.
六.Java接口和Java抽象类区别面向对象设计的重点在于抽象。抽象类与接口都位于继承树的上层。
相同点:
1、代表系统的抽象层,当一个系统使用一颗继承树上的类时,应该尽量把引用变量声明为继承树的上层抽象类型,这样可以提高两个系统之间的送耦合2、都不能被实例化3、都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不包含方法体不同点:
1、最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以;这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。
可以向抽象类里加入一个新的具体方法,所有的子类都自动得到这个方法;但Java接口里加入一个 新方法,所有实现这个接口的类就无法成功通过编译,必需手动给每个实现了该接口的类加上该方法的实现;
2、抽象类的实现只能由子类给出,也即该实现只能在抽象类定义的继承的等级结构中;所以抽象类作为类型定义工具的效能大打折扣。
Java接口,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。
以上看出:Java接口是定义混合类型的理想工具,混合类表明一个类不仅仅具有某个主类型的行为,而且具有其他的次要行为。
3、结合1、2点中抽象类和Java接口的各自优势,具精典的设计模式就出来了:
声明类型的工作仍然由Java接口承担,但是同时给出一个Java 抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类,也就是说在层次结构中,Java 接口在最上面,然后紧跟着抽象类,这下两个的最大优点都能发挥到极至了。这个模式就是“缺省适配模式”。
在Java语言API中用了这种模式,而且全都遵循一定的命名规范:Abstract +接口名。
七.使用接口和抽象类的总体原则:
1、用接口作为系统与外界交互的窗口站在外界使用者(另一个系统)的角度,接口向使用者承诺系统能提供哪些服务,站在系统本身的角度,接口制定系统必须实现哪些服务,接口是系统中最高层次的抽象类型.通过接口交互可以提高两个系统之间的送耦合系统A通过系统B进行交互,是指系统A访问系统B时,把引用变量声明为系统B中的接口类型,该引用变量引用系统B中接口的实现类的实例。
public interface B { }
public class C implements B { }
public class A { B a = new C(); }
2、Java接口本身必须非常稳定,Java接口一旦制定,就不允许随遇更加,否则对外面使用者及系统本身造成影响3、用抽象类来定制系统中的扩展点,抽象类来完成部分实现,还要一些功能通过它的子类来实现
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- java 学习笔记
- Android闹钟最终版【android源码闹钟解析】
- 南阳32 组合数——练习回溯深搜
- java并发编程-Executor框架
- android开发之interpolator的用法详解
- 构造函数对数据成员进行初始化的方法
- java学习笔记
- SAP所有用户出口列表(4.6C)(续)
- xinfan
- Slate教学管理工具简介
- centos6下KVM安装及虚机网卡问题解决
- Friend Chains(spfa)
- 总结Spring Set注入方式及对property标签的理解
- Android使用socket使底层和framework通信
- JDom解析和生成XML文档