随笔分类 -  JavaSE

摘要:(一)定义 线程本地变量,线程独有的变量,作用域为当前线程 (二)使用场景 (1) 目标变量只与当前线程有关,每个线程需要有该值的备份 (2) 目标变量在线程执行过程中多次使用,导致需要在每个用到的方法都要作为参数传递,ThreadLocal提供了一种从当前线程取变量的途径 (三)案例 (1)Jav 阅读全文
posted @ 2019-08-28 11:33 逃跑旅馆 阅读(743) 评论(0) 推荐(0) 编辑
摘要:(1)CountDownLatch与Semaphore (2)CountDownLatch与CyclicBarrier 阅读全文
posted @ 2019-07-07 12:49 逃跑旅馆 阅读(156) 评论(0) 推荐(0) 编辑
摘要:源码 网上看到的解释 网上关于CopyOnWriteArrayList的文章大多拷贝自http://ifeve.com/java-copy-on-write/ ,原文对这个疑问的解释如下: 我的理解 这里我觉得这原文的解释不太清晰或不太合理,我的思考是: add的流程“是复制当前数组获得新数组 -> 阅读全文
posted @ 2019-07-06 16:51 逃跑旅馆 阅读(468) 评论(0) 推荐(0) 编辑
摘要:(一)结论 在尾部插入数据,数据量较小时LinkedList比较快,因为ArrayList要频繁扩容,当数据量大时ArrayList比较快,因为ArrayList扩容是当前容量*1.5,大容量扩容一次就能提供很多空间,当ArrayList不需扩容时效率明显比LinkedList高,因为直接数组元素赋 阅读全文
posted @ 2018-08-25 09:57 逃跑旅馆 阅读(1914) 评论(0) 推荐(1) 编辑
摘要:特性 Java内存模型实现volatile load + use 必须连续一起出现,这就保证了线程从主内存读到的值是最新的值 assign + store + write必须连续一起出现,这就保证了线程修改的值必须立刻更新到主内存 对于两个变量A和B,如果先对A执行了use或assign操作,那么就 阅读全文
posted @ 2018-08-12 10:56 逃跑旅馆 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:意义 JVM定义内存模型来屏蔽掉各种硬件与操作系统的内存访问差异,一实现让Java程序在各种平台下都能达到一致的访问效果 字典表 变量:实例字段静态字段和构成数组对象的元素等,但不包括局部变量和方法参数(线程私有) 主内存:就是物理硬件的内存 工作内存:每个线程都有一个工作内存,存储了使用的主内存副 阅读全文
posted @ 2018-08-12 09:20 逃跑旅馆 阅读(119) 评论(0) 推荐(0) 编辑
摘要:简单实例 Buffer读写图解 阅读全文
posted @ 2018-08-07 17:41 逃跑旅馆 阅读(87) 评论(0) 推荐(0) 编辑
摘要:环境 jdk1.8 相关类 简单使用实例 线程池参数 1.corePoolSize 核心线程池大小:最小活线程数,除非设定了allowCoreThreadTimeOut否则这些线程不会因过长时间空闲而销毁; 当allowCoreThreadTimeOut默认为false,核心线程即使空闲也会保持al 阅读全文
posted @ 2018-08-06 09:59 逃跑旅馆 阅读(129) 评论(0) 推荐(0) 编辑
摘要:使用内部类来存储要返回的结果即可实现返回多个参数 使用泛型并限定类型必须实现Comparable接口,实现重用 使用T...a实现传入不定量个数的数组 public class ArrayAlg{ /** * 限定传入的类型必须实现Comparable接口,传入不定个数的数组 * @param a * @param * @return 返回... 阅读全文
posted @ 2018-06-18 11:34 逃跑旅馆 阅读(1333) 评论(0) 推荐(0) 编辑
摘要:为什么要异常处理? 层次结构 所有异常继承与Throwable类 Error类属于Java运行时系统的内部错误和资源耗尽错误 RuntimeException是程序错误导致的异常,如类型转换数组越界等 错误的类型转会 数组访问越界 访问null指针 OtherException是程序本身没有问题但由 阅读全文
posted @ 2018-06-11 15:43 逃跑旅馆 阅读(113) 评论(0) 推荐(0) 编辑
摘要:(一)简单内部类(直接定义在外部类的域中) 简单内部类相当于外部类的一个普通成员,因此内部类可以访问到外部类的所有成员(包括private成员) 而外部类一旦有一个内部类的对象,就可以访问该对象的所有成员(包括private成员) 需要注意的是如果只是定义了内部类,那么在外部类中是没有该内部类的对象 阅读全文
posted @ 2018-06-11 10:57 逃跑旅馆 阅读(202) 评论(0) 推荐(0) 编辑
摘要:以Employee为例,实现对象数组Employee[] employees的排序 1.类实现comparable 一个对象数组若要使用Arrays.sort(Object[] objects)方法来排序,那么该对象类需要实现comparable接口 2.往Arrays.sort()方法中传入Com 阅读全文
posted @ 2018-06-11 08:27 逃跑旅馆 阅读(5731) 评论(0) 推荐(0) 编辑
摘要:定义 接口不是类,它有自己的统一格式,接口描述了类的一组需求 组成 没有方法体的抽象方法(默认为public abstract方法) 静态方法(必须有方法体) 变量(publi static final) 接口方法 接口的所有方法都属于public abstract,因此接口的方法可以省略修饰符;需 阅读全文
posted @ 2018-06-10 15:43 逃跑旅馆 阅读(127) 评论(0) 推荐(0) 编辑
摘要:反射(java.lang.reflect)用于分析类能力 (一)Class类 1.定义 Java运行时为每一个对象都维护的一个类型标识,用于跟踪对象所属的类提供给虚拟机分析调用,而保存这些信息的类就是Class类 (一个Class类对象可以理解为一个类型,这个类型可以是类或基本数据类型int等) 2 阅读全文
posted @ 2018-06-10 10:48 逃跑旅馆 阅读(174) 评论(0) 推荐(0) 编辑
摘要:getMin(double... value)实现了求不确定参数个数的最小值,其中double... 参数类型与double[]类型一样 阅读全文
posted @ 2018-06-09 17:28 逃跑旅馆 阅读(3458) 评论(0) 推荐(0) 编辑
摘要:java文件 通常一个java文件只会有一个类,但是有多个类也是允许的 只是public修饰的公共类要与java文件名相同,但是编译的结果也是每个类会有一个.class文件(包括内部类A与外部类Test) 类组成 实例域与方法域 static静态域: final域: 方法参数 隐式参数:调用该方法的 阅读全文
posted @ 2018-06-09 16:28 逃跑旅馆 阅读(123) 评论(0) 推荐(0) 编辑
摘要:定义 toString()返回对象值的字符串,用于记录类的具体信息 Object.toString()返回值: className@hashcode 每一个自己定义的类都尽量重写toString(),方便观察值与获得重要信息 Java默认调用toString() ""+String 调用String 阅读全文
posted @ 2018-06-09 09:31 逃跑旅馆 阅读(229) 评论(0) 推荐(0) 编辑
摘要:定义 散列码(hash code)是根据对象内容导出的一个整型值,用于标识不同的对象; 而Object类中有默认的hashcode()方法,其值是对象的存储地址 自定义对象重写hashcode() 思路:分别调用类的实例域的hashcode()然后相加来得到该类的hashcode 调用null安全的 阅读全文
posted @ 2018-06-09 08:50 逃跑旅馆 阅读(669) 评论(0) 推荐(0) 编辑
摘要:equals()规范,假设对象都不为null: 重写equals()分为5步: 举例:Manager类(int bonus;String sex),Person类(String name) getClass与instanceof对比:getClass判断精确某一类,instanceof可以是父类或接 阅读全文
posted @ 2018-06-08 21:56 逃跑旅馆 阅读(254) 评论(0) 推荐(0) 编辑
摘要:子类只能继承一个父类 子类会继承父类的所有域,只是私有域无法访问与使用 父类对象的public域是所有类都可见的,而proteced域只能在本包与它的子类可见(注意的是子类对象只能访问它从父类继承的protected域,而不能访问父类对象的protected域),private域无法直接访问除非父类 阅读全文
posted @ 2018-06-08 16:26 逃跑旅馆 阅读(1512) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示