java学习笔记
丶一个有梦想的老实人
if have a day...
展开
-
java(4):对多态的理解
面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界来说它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。同时继承也为实现多态做了铺垫。 那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭...转载 2018-12-26 15:26:43 · 17747 阅读 · 5 评论 -
java(15): 动态代理模式解析
首先看一下 java 中的动态代理类:1. Java 动态代理类位于 java.lang.reflect 包下,一般主要涉及到以下两个类:a. Interface InvocationHandler:该接口中仅定义了一个方法(该方法在代理类中动态实现):/** 第一个参数 proxy 是代理类;第二个参数 method 是被代理的方法; 第三个是该代理方法的参数数组。*/pub...原创 2019-05-06 14:38:48 · 293 阅读 · 0 评论 -
Java(14):反射(3) 与 静态代理模式解析
1. 总所周知 Java 有个 Object class,是所有 Java classes 的继承根源,其内声明了数个应该在所有 Java class 中被改写的 methods:hashCode()、equals()、clone()、toString()、getClass() 等。2. Class 类十分特殊。它和一般的 classes 一样继承自 Object 类,其...原创 2019-05-06 14:31:32 · 283 阅读 · 0 评论 -
java(16):Java Annotation(Java 注解)
目标:掌握 Java Annotation 特性与使用方式Annotation 工作方式: 从 Java5.0 版本发布以来,5.0 平台提供了一个正式的 annotation(注解) 功能:允许开发者定义、使用自己的 annotation 类型。此功能由一个定义 annotation 类型的语法和一个描述 annotation 声明的语法、读取 annotation 的 API、一...原创 2019-05-08 14:29:48 · 522 阅读 · 0 评论 -
Java(13):反射(2)
关于 Class 类、Method 类以及 Field 类的使用方式解析:1. 要想使用反射,首先需要获得待处理类或对象所对应的 Class 对象。2. 获取某个类或某个对象所对应的 Class 对象的常用 3 种方式: a. 使用 Class 类的静态方法 forName();// 参数为要获取的 Class 类的包名,eg: Class<?> classTy...原创 2019-05-05 14:30:07 · 422 阅读 · 0 评论 -
java(12):反射(1)
Java 语言的反射机制: 1. 在 Java 运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法(包括它的私有属性和方法)?对于任意一个对象,能否调用它的任意一个方法(包括它的私有方法)?答案是肯定的。 这种动态获取类的信息以及动态调用对象的方法的功能来自于 Java 语言的反射(Reflection)机制。 2. Java 反射主要提供了下面四...原创 2019-05-05 14:18:49 · 360 阅读 · 0 评论 -
java(11): Object 类学习 和 String 陷阱分析
1. 相等性的比较(==) a. 对于原生数据类型来说,比较的是左右两边的值是否相等。 b. 对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。2. Object 类是所有对象的父类 。3.public class StringTest {public static void main(String[] args...原创 2019-04-25 23:03:44 · 263 阅读 · 0 评论 -
java(3):int与integer的区别
int与Integer的区别:(1)Integer是int的包装类,属于引用类型;int是基本数据类型;(2)Integer的默认值初始值是null(引用类型);int的默认初始值是0(基本数据类型);(3)情况一: 一个直接Integer 和 一个new Integer()比较://Integer test1 = xx时,xx如果是 [-128, 127] 之间的值时,编译时...原创 2018-12-25 16:27:25 · 275 阅读 · 0 评论 -
java(10): 抽象类是否可以没有方法和属性?
答案是肯定的,可以。 抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。所以,java中 抽象类里面可以没有抽象方法。注意即使是没有抽象方法和属性的抽象类,也不能被实例化。...原创 2019-01-04 19:18:27 · 6164 阅读 · 0 评论 -
java(9): 抽象类与接口的应用场景
抽象类的应用场景:a. 在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。b. 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。接口的应用场景:a. 一般情况下,实现类和它的抽象类之前具有 "is-a" 的关系,但是如果我们想达到同样的目的,但是又不存在这种关系时,使用接口。b. 由于 jav...原创 2019-01-04 18:07:51 · 3443 阅读 · 0 评论 -
java(2):int、char、long各占多少字节数
java的基本类型各占字节数: boolean 未指定,至少一个字节。仅定义取字面值true和false。 byte 1字节 short & char 2字节 int & float 4字节 long &a...原创 2018-12-25 15:27:12 · 1015 阅读 · 1 评论 -
java(1): java中==和equals和hashCode的区别
1."==" "=="运算符是比较两个变量的值是否相等。也就是说,该运算符用于比较变量对应的内存中所存储的值是否相等,要比较两个基础类型的数据或两个引用变量是否相等,只能使用"=="运算符。 具体而言,如果两个变量是基础类型,可以直接使用"=="运算符判断对应的值是否相等。如果一个变量指向的是对象(引用类型),那么,此时涉及两块内存,指向的对象本身占用一块内存(堆内存),变量本...原创 2018-12-25 14:35:53 · 915 阅读 · 0 评论 -
java(8): 抽象类的意义
1.可以把同一种类型的对象共性抽取出来后封装成抽象类,子类通过继承该抽象类达到代码编写简洁,易于维护的目的。2.通过抽象类定义一系列规范,继承该抽象类的子类必须实现相应的抽象方法,使得该子类具有相应的规范性。3.实现多态。 ...原创 2019-01-04 17:01:02 · 948 阅读 · 2 评论 -
java(7): 抽象类和接口区别
先笼统的说一下抽象类和接口的区别以及我们在实际使用中怎么去选择使用接口还是抽象类? 首先我们要明白,抽象类是对类的抽象,而接口是对行为的抽象。了解了这个概念后一切都好办。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口只是对类的局部(行为)进行抽象。举个例子,猫和狗都是动物,此时我们可以把猫和狗共有的属性和行为抽取出来定义一个抽象的类---Animal 类,然后 Dog 和 ...原创 2019-01-04 15:43:05 · 1840 阅读 · 1 评论 -
java(6): 内部类相关面试知识详细整理
一、什么是内部类? 可以将一个类的定义放在另一个类的定义内部,这就是内部类。二、为什么要存在内部类? a. 内部类方法可以访问该类定义所在的作用域中的数据(也就是该内部类的外围类),包括外围类中 private 修饰的私有成员变量和方法。 b. 内部类可以对同...原创 2018-12-28 20:32:33 · 409 阅读 · 0 评论 -
java(5): String、StringBuffer、StringBuilder区别
String: String的值是不可变的,所以每次对改变String的值其实都是生成新的对象,这就会导致内存开销变大。StringBuffer: 它是可变的字符串变量,并且线程安全。StringBuilder: 它是可变的字符串变量,并且线程不安全。以下内容原文:https://blog.csdn.net/rmn190/article/details/1492013...原创 2018-12-27 10:14:14 · 333 阅读 · 0 评论 -
java(17): Java 异常(Exception)
1. Java 中的异常分为两大类: a. Checked exception (非 Runtime Exception) b. Unchecked exception (Runtime Exception)2. Java 中所有的异常类都会直接或者间接的继承自 Exception。3. RunTimeException 也是继承自 Exception 类,它是运行时异...原创 2019-05-10 19:13:05 · 916 阅读 · 0 评论