Java学习记录(一)

1.关于基本数据类型转换规则。
(1)8种基本数据类型除boolean类型之外都可以相互转换。
(2)byte<short(char)<int<long<float<double
(3)byte,short,char做混合运算的时候,各自都先转换成int再做运算。
(4)大容量向小容量转换是强类型转换,需要加强制转换符,编译虽通过
但是运行期可能损失精度。
(5)如果整数没有超过byte,short,char的取值范围,可以直接将这个整数
赋值给byte,short,char。
(6)多种数据类型做混合运算,先转换成容量最大的那种再做运算。

2.方法的执行原理:
方法在调用的时候,才会给该方法在内存中分配空间。
如果这个方法只是定义没有调用,则不会在内存中分配空间。
方法在调用的时候在“栈”中分配空间。(JVM内存中有一块内存是栈内存)
方法调用就是“压栈”。
方法结束就是“弹栈”。

3.深入final。
final修饰的引用类型,该引用不可再重新指向其他的Java对象。
但是final修饰的引用,该引用指向的对象的属性是可以修改的。
抽象类不能被final修饰,抽象方法不能被final修饰。

4.重写和重载的区别。
重写:
(1)参数列表必须完全与被重写的方法相同;
(2)返回的类型必须一直与被重写的方法类型相同。
(3)访问修饰符的限制一定要大于或者等于被重写的访问修饰符。
(4)重写方法一定不能抛出新的异常或者比被重写方法声明更宽泛的异常。
如:父类的一个方法声明一个IOException,在重写这个方法就不能抛出
Exception,只能抛出IOException,也可以抛出运行时异常或错误(不可查异常)。

重载:
(1)必须具有不同的参数列表,参数类型、数量和顺序其中一个不同。
(2)可以有不同的返回类型,只要参数列表不同就可以。
(3)可以有不同的访问修饰符。
(4)可以抛出不同的异常。

5.可查异常和不可查异常。
(1)可查异常(编译时异常):是可预料的异常,必须对该异常进行处理。
除了运行时异常(RuntimeException)及其子类外,其他的Exception类
及其子类都是可查异常。
(2)不可查异常:是不可预料的异常,无须对该异常进行处理。包括运
行时异常(RuntimeException)和错误(Error)。

6.异常和错误类
(1)Error和Exception都是继承了Throwable。
(2)Error属于不可查异常(编译时异常)。
(3)Exception的子类包括IOException和RuntimeException。
(4)IOException属于可查异常,必须进行处理,如:FileNotFoundException。
(5)RuntimeException属于运行时异常,是不可查的,无须进行处理,包括
ClassNotFoundException、NullPointerException、ArrayIndexOutOfBoundsException、
illegalargumentexception(不合法参数异常)。

7.抽象类
(1)class关键字前加abstract;
(2)抽象类无法实例化;
(3)抽象类虽无法实例化,但是也有构造方法,该构造方法是给子类
创建对象用的;
(4)抽象类可以定义抽象方法,抽象类不一定有抽象方法,但是抽象方法
必须出现在抽象类中;
(5)一个非抽象类的类继承类,必须将抽象类中的抽象方法覆盖、实现、
重写。

8.接口
(1)接口只能出现变量、抽象方法;
(2)接口其实是一个特殊的抽象类,特殊在接口是完全抽象;
(3)接口没有构造方法,无法被实例化;
(4)接口和接口之间可以多继承;
(5)一个类可以实现多个接口;
(6)一个非抽象类实现接口,需要将接口所有的方法实现、重写、覆盖。

9.抽象类和接口的区别
可以从构造方法、普通成员变量、普通方法、抽象方法的访问类型、静态
方法、静态成员变量等方面进行区分。
(1)抽象类可以有构造方法,而接口不能有构造方法;
(2)抽象类可以有普通成员变量,接口不能有普通成员变量;
(3)抽象类中可以包含非抽象类的普通方法,接口中的所有方法必须都是
抽象的;
(4)抽象类中的抽象方法的访问类型可以是public、protected,但接口
中的抽象方法只能是public类型,并且默认就是public abstract类型;
(5)抽象类可以包含静态方法,接口不能包含静态方法;
(6)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量
的访问类型可以是任意的,但接口中定义的变量只能是public static final
类型,并且默认就是public static final类型。
(7)一个类可以实现多个接口,但只能继承一个抽象类。

10.Spring
(1)Spring实现了工厂模式的工厂类,这个类名为BeanFactory。Spring
相当一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例
对象的类名和实例对象的属性。
(2)Spring提供了对IOC良好的支持,IOC是一种编程思想,利用这种思想
可以很好实现模块之间的解耦。IOC也称为DI即依赖注入。
(3)Spring提供了AOP技术良好封装,AOP称为面向切面编程,就是系统中
很多各不相干的类的方法,在这些众多方法中要加入某种系统功能代码。
例如,加入日志、权限判断、异常处理,这种应用称为AOP。

11.Spring IOC
IOC即控制反转,将应用程序管理的对象之间依赖关系交给了容器管理,
这就是控制反转,Spring的IOC容器主要用DI方式实现的。不需要主动
查找、对象查找、定位和创建,全部由容器管理。
(1)IOC大量减少了Factory和Singleton的数量,使代码层次更加清晰,
主要原因是不再查找、定位、创建和管理对象之间的依赖关系,全都
交给IOC容器管理了。
(2)Spring的IOC容器是一个轻量级的容器,没有侵入性,不需要依赖
容器的API,也不需要实现一些特殊接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值