此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

随笔分类 -  java

摘要:wait() 与 notify/notifyAll() 是Object类的方法 1. wait() 与notify/notifyAll方法必须在同步代码块中使用 在执行以上方法时,要先获得锁。那么怎么获得锁呢? 使用synchronized关键字获得锁。因此,wait() 与 notify/noti 阅读全文
posted @ 2018-11-28 15:24 炎泽
摘要:在构造函数中,如果不在第一行指定构造器之间的调用关系,即使用this(),那么编译器会给你加上super() 那么就会发生super()->this()->super()的执行过程 为了避免多次创建对象,this()和super()的调用必须在第一行 阅读全文
posted @ 2018-11-27 16:29 炎泽
摘要:先说结论:java没有指针,它使用对象引用来替代指针 c/c++的指针和java的引用完全不是一个东西 c/c++的指针(例如定义a为b变量的指针),a只是变量内存的不同名字(同一块内存) 而java的引用则是指向对象的内存地址,引用本身也占用内存。 阅读全文
posted @ 2018-11-27 15:46 炎泽
摘要:Runnable 任务,没有返回值 Callable 任务,又返回值 Runnable与Callable 相同点: 1. 都是接口; 2. 用来编写多线程程序; 3. 都需要调用Thread.start()启动线程 不同点: 1. 实现Callable接口的任务线程能返回执行结果;而实现Runnab 阅读全文
posted @ 2018-11-21 15:19 炎泽
摘要:转载自:https://blog.csdn.net/cool_ben/article/details/49334655 如下是经典的Fobonacci递归算法: 编译后出错,无法在静态上下文中引用非静态。 因为一个类的静态方法在这个Class文件被加载之后,就可以由这个Class类型对象来调用, 而 阅读全文
posted @ 2018-11-20 11:46 炎泽
摘要:本文总结自:https://blog.csdn.net/asdfsadfasdfsa/article/details/78808131 什么样的方法会抛出InterruptedException异常? 抛InterruptedException的代表方法有: 1. java.lang.Object 阅读全文
posted @ 2018-11-19 19:44 炎泽
摘要:JDK(Java Development Kit) 整个Java的核心 可通过$JAVA_HOME找到 内容:Java运行环境JRE、Java工具(javac/java/jdb等)和Java基础类库(即java API)。 JRE(Java Runtime Environment) 运行JAVA程序 阅读全文
posted @ 2018-11-19 12:08 炎泽
摘要:Collections与Collection 1. Collections是java.util下的类,它包含有各种有关集合操作的静态方法2. Collection是java.util下的接口,它是各种集合结构的父接口 ArrayList和Vector1. 同步性: Vector是线程安全的,也就是说 阅读全文
posted @ 2018-11-08 15:04 炎泽
摘要:本文转自:https://www.cnblogs.com/shen-hua/p/5440285.html 成员内部类 特征: 1. 作为外部类的一个成员存在,与外部类的属性、方法并列 2. 成员内部类持有外部类的引用(能直接使用外部类的方法、属性) 3. 成员内部类中不能定义static变量和方法 阅读全文
posted @ 2018-11-08 12:23 炎泽
摘要:抽象类 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 1. 除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样,必须被继承,才能被使用 2. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。 抽象方法 1. 抽象方法只包 阅读全文
posted @ 2018-11-08 11:13 炎泽
摘要:详情见:https://www.cnblogs.com/xdp-gacl/p/3855702.html 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。 因此,在需要保存用户数据时,服务器程序可以把用户数据写 阅读全文
posted @ 2018-11-07 17:43 炎泽
摘要:List li = new ArrayList(20);System.out.println(li.size()) ;// 0 int [] arr = new int [20];System.out.println(arr.length); //20,没有任何元素 length属性返回的数组的长度 阅读全文
posted @ 2018-11-07 11:39 炎泽
摘要:// java8之前,若从map中根据key获取value,如果key不存在,则添加,这一系列操作可以是下面的操作 Object key = map.get("key"); if (key == null) { key = new Object(); map.put("key", key); } // java8之后。上面的操作可以简化为一行,若key对应的value为空,... 阅读全文
posted @ 2018-11-06 11:04 炎泽
摘要:作用: 告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包(也就是.class文件) JDK 5.0默认就会到JDK的lib目录下寻找Java程序。 如何配置? 有许多方法,最简单的方法是在系统环境变量中新增Classpath环境变量。 一般所说的classpath是 阅读全文
posted @ 2018-10-31 15:12 炎泽
摘要:首先得了解什么是主线程,当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread)。主线程的重要性体现在两方面:1. 它是产生其他子线程的线程;2. 通常它必须最后完成执行,因为它执行各种关闭动作。 run() 只是运行此方法,依旧处于主线程内,不会开启新线程。 e 阅读全文
posted @ 2018-10-30 11:54 炎泽
摘要:总结自:https://blog.csdn.net/waeceo/article/details/54377218 不可变类:类的实例创建完成后,就不能改变其成员变量值(注意,这里的不可变不是指变量赋值后在修改会报错,而是修改前后是不一样的内存空间!!)。如:8种包装类与String类等。 可变类: 阅读全文
posted @ 2018-10-29 18:44 炎泽
摘要:Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder String 只读字符串,这里的只读并不是指String类型变量无法被修改,而是指String类型字符串修改前后是完全不同的两个内存空间,而不是在原基础上更改。 StringBuffer/Stri 阅读全文
posted @ 2018-10-29 17:38 炎泽
摘要:JDK(Java Development Kit)即为Java开发工具包, 包含编写Java程序所必须的编译、运行的开发工具以及JRE,开发工具即:用于编译java程序的javac命令、用于启动JVM运行java程序的java命令、用于生成文档的javadoc命令以及用于打包的jar命令等等(就是各 阅读全文
posted @ 2018-10-29 16:21 炎泽
摘要:在并发编程中,我们通常会遇到以下三个概念:原子性、可见性和有序性。我们先看具体看一下这三个概念: 1.原子性 操作时不可分割的比如a=0,此操作不可分割,而++a,实际上是a=a+1,为两个操作。想将非原子操作编程原子操作,得用synchronized、lock等修饰volatile修饰的变量不具备 阅读全文
posted @ 2018-10-23 11:00 炎泽
摘要:Class文件是一组以8位字节为单位的二进制流,当遇见需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储。 格式,采用伪结构,只有两种数据结构:无符号数和表。 无符号数: 表:由多个无符号数或其他表作为数据项构成的复合数据类型,整个Class文件本质上就是一张表 阅读全文
posted @ 2018-10-22 18:53 炎泽