Java基础
文章平均质量分 71
待长的小蘑菇
我是Ashes,一个待长的小蘑菇
展开
-
类加载机制以及Java-Reflect(反射)
1、类的生命周期:指的是一个类被加载到JVM中运行到被卸载的过程,类的生命周期主要经过了类加载,验证,准备,解析,初始化,使用和卸载7个步骤。2、类加载:主要是把class文件加载到JVM中,同时生成该类所对应的Class对象,该class对象是Java反射的起源,通过该对象可以在类运行期间‘窥探’类的结构信息。3、类的连接: (1)验证:JVM负责检查被加载的类是否有正确的内部原创 2017-04-17 09:54:25 · 557 阅读 · 0 评论 -
抽象类、接口(包括Java8新特性)
一、抽象类:1、包含一个或多个抽象方法的类本身必须被声明成抽象的。2、除了抽象方法之外,抽象类还可以包含具体数据和具体方法3、扩展抽象类的两种选择(抽象方法的具体实现在子类中): A、 抽象类中定义部分抽象类或不定义抽象类方法,这样就必须将子类也标记为抽象类。 B、定义全部的抽象方法,这样子类就不是抽象的了 4、不能直接被实例化,可以间接使用原创 2017-05-01 21:21:53 · 1483 阅读 · 0 评论 -
JDK、JRE和JVM的关系
1、JDK(Java Development Kit) JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。 JDK是整原创 2017-04-28 10:00:59 · 657 阅读 · 0 评论 -
Java异常总结
一、 异常处理的任务:将控制权从错误产生的地方转移给能够处理这种情况的错误处理。所有的异常都有一个共同的祖先 Throwable(可抛出)。 在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。 二、 非受查异常派生于Error类或者RuntimeException类的所有异常称为非受查异常,RuntimeException的异常包括以下情况(自动抛出异常原创 2017-03-01 11:21:49 · 440 阅读 · 3 评论 -
由equals方法和==引发的思考和验证
一、首先,我们应该了解创建字符串是直接使用双引号还是String构造函数1、使用双引号a == b 等于true是因为x和y指向方法区中同一个字符串常量,他们的引用时一样的(==比较的是引用)当相同的字符串常量被多次创建时,只会保存字符串常量的一份副本,这称为“字符串驻留”。在java中,所有编译时字符串常量都是 驻留 的关系操作符生成的是一个boolean结果,它原创 2017-06-04 16:00:52 · 533 阅读 · 0 评论 -
Java三大特性之封装继承多态
一、 封装封装是什么? 访问权限的控制常常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为“封装”。 通常人们也单独只将具体实现的隐藏称为封装隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别(POJO) (我只给你看我希望你看到的东西,不该给你的东西你不需要知道)为什么封装? 封装的意义在于,这一点并不重要,重要的是类对外提原创 2017-06-29 23:51:38 · 855 阅读 · 1 评论 -
Insecure Randomness引发对随机数生成器抵挡加密攻击的方法
一、由nextInt()实施的随机数生成器不能抵挡加密攻击1、不安全的随机数:电脑是一种具有确定性的机器,因此不可能产生真正的随机性。伪随机数生成器 (PRNG) 近似于随机算法,始于一个能计算后续数值的种子。2、PRNG 包括两种类型:统计学的 PRNG 和密码学的 PRNG。统计学的 PRNG 可提供有用的统计资料,但其输出结果很容易预测,因此数据流容易复制。若原创 2017-09-26 12:32:51 · 4374 阅读 · 0 评论 -
java的深浅拷贝与绕过构造函数获取对象的神奇之旅
一、产生一个对象一定要执行构造函数吗?当然不是!!!! 1、通过new产生一个对象(1)先看new操作符后的类型,知道类型,分配相应大小的内存空间(2)再调用构造函数,填充对象的各个域(对象初始化)(3)构造函数执行后,一个对象创建完毕,可以把他的引用(地址)发布到外部,在外部可以使用这个引用操作操纵这个对象 2、反射-------请移步查看类加载机制以及J原创 2017-09-28 10:05:35 · 565 阅读 · 0 评论 -
由Set和List组合检验重复问题引发的思考以及验证
1、如何利用set、list做检查重复的功能代码展示 public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("A&quot原创 2018-08-11 16:07:42 · 445 阅读 · 0 评论