java
文章平均质量分 63
轻井泽惠。
我阿惠
展开
-
双括号匿名类分析、list快速创建方式
由快速创建list引发对匿名类的好奇转载 2022-08-10 08:50:14 · 744 阅读 · 0 评论 -
通过volatile的可见性使线程按顺序执行(cas)
volatile static int flag=0; //#region public static void main(String[] args) throws Exception { int num=100; for (int i = 0; i < 100; i++) { int finalI = i; new Thread(()->{ while(true){原创 2022-02-02 23:20:16 · 491 阅读 · 0 评论 -
测试jvm对double、long是否原子性操作
public class Test implements Runnable{ private static long field = 0; private volatile long value; public long getValue() { return value; } public void setValue(long value) { this.value = value; } public Test(l原创 2021-03-20 14:11:34 · 297 阅读 · 4 评论 -
泛型,list,list《?》,list《object》
List,List<>,List<?>List :完全没有类型限制和赋值限定。List :看似用法与List一样,但是在接受其他泛型赋值时会出现编译错误。 包含任何对象类型的一个集合List<?>:是一个泛型,在没有赋值前,表示可以接受任何类型的集合赋值,但赋值之后不能往里面随便添加元素,但可以remove和clear,并非immutable(不可变)集合。List<?>一般作为参数来接收外部集合,或者返回一个具体元素类型的集合,也称为通配符集合。 包含原创 2021-03-11 02:17:27 · 350 阅读 · 0 评论 -
Hashmap以及为什么equals,hashcode要同时重写
文章目录基于散列的集合关于jdk1.8之后hashmap在链表长度为8时转为红黑树关于HashMap扩容机制:**为什么重写equals后要重写hashcode那我只重写hashcode行吗基于散列的集合hashMap术语介绍:桶: 就是hashmap的table数组bin: 就是挂在数组上的链表TreeNode: 红黑树capacity: table总容量MIN_TREEIFY_CAPACITY :64 转化为红黑树table最小大小TREEIFY_THRESHOLD :8 转化为红黑树原创 2021-03-10 21:53:38 · 517 阅读 · 1 评论 -
异常总结(受检和非受检的理解
2.17 异常12常见异常:ClassCastException(类转换异常)IndexOutOfBoundsException(数组越界)NullPointerException(空指针) ,ArrayStoreException(数据存储异常,操作数组时类型不一致原创 2021-03-08 20:11:12 · 203 阅读 · 0 评论 -
java final/static
文章目录final/staticfinal:static:(只跟类有关,跟实例无关,与多态无缘static代码加载顺序:父类静态代码块-》子类静态代码块-》父类非静态代码块-》父类构造函数(new后才会调用)->子类非静态代码块-》子类构造函数==**为什么String设计为Final**==final/staticfinal:在声明时修饰类:类的指向无法改变,但其(成员变量的)值可以改变。final StringBuffer a=new StringBuffer("a");final S原创 2021-03-07 17:25:22 · 201 阅读 · 0 评论 -
sleep导致数据的更新问题、缓冲层更新问题
public class Test { public static boolean running =true; public static void main(String[] args) throws InterruptedException { new Thread(){ long i =0; @Override public void run(){ while(r原创 2021-02-27 09:52:20 · 287 阅读 · 1 评论 -
java五种创建对象的方式(简洁)
java五种创建方式:1.使用new。2.使用Class类的newInstance方法3.使用Constructor类的newInstance方法4.使用clone方法5.使用反序列化https://www.cnblogs.com/wxd0108/p/5685817.html1.使用new。2.使用Class类的newInstance方法Class的三种方式:(类,对象,包名.类名)https://www.cnblogs.com/benjamin77/p/9146115.htmlTest t =转载 2021-02-21 23:30:21 · 255 阅读 · 0 评论 -
继承 重载/重写方法后,父类调用重写方法为什么是调用子类的方法,而重载则不会
创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法,而被子类重载的方法不会调用,为什么重写时调用的时子类呢?为什么在父类构造函数中调用的是子类的方法:还有一种就是多态,其实第一种也算是多态。Animal a = new Tiger() ; a. Tiger()第一种其实和这种是类似的。重载是不会影响父类调用其本身的方法。因为虽然使用的是子类的this,但是该方法在子类中没有被重写则继续调用。为什么在父类构造函数中调用的是子类的方法:在构造函数中调用方法是隐藏了this,而通过子类原创 2021-02-21 15:26:46 · 2190 阅读 · 3 评论 -
多态-强转,异常抛出问题
多态强转(父类使用子类初始化时才能进行强转)异常(子类方法不能抛出比父类范围更大的异常)强转(父类使用子类初始化时才能进行强转)直接转会提示数组强转错误。List<String> list = new ArrayList<>(); String [] s = (String[])list.toArray();解决方案: String [] ss = list.toArray(new String[list.size()]);问题: Object数据不能强转原创 2021-02-13 09:08:25 · 356 阅读 · 3 评论 -
java8新特性
文章目录java8新特性lambda表达式与函数式接口1.lambda表达式2.函数式接口常见函数式接口==关于Comparator类存在的疑惑:==常见函数式接口相关简单用法:(comsumer,supplier,function,predicate)方法引用Stream1.什么是Stream?2.Stream的特点:3.Stream使用步骤中间操作终止操作:Optional:解决空指针异常(如min,max操作返回null)Date/Time API改进(新的TimeAPI基本是final class)原创 2021-02-12 20:12:34 · 717 阅读 · 2 评论 -
线程的三种创建方式以及相关区别
熟悉三种创建线程方式以及区别转至:java创建线程的三种方式及其对比_longshengguoji的专栏-CSDN博客_创建线程的三种方法创建:Callable:(1)创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值。(2)创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值。(3)使用FutureTask对象作为Thre原创 2021-02-08 22:49:21 · 424 阅读 · 0 评论 -
Java 修饰符:final
final在声明时修饰类:类的指向无法改变,但其(成员变量的)值可以改变。final StringBuffer a=new StringBuffer("a");final StringBuffer b = new StringBuffer("b");a=b;//无法通过编译a.append(b);//编译通过//final HeroHero h = new Hero();h.hp=100;h.hp=200;h=new Hero();//无法通过在定义时修饰类: 无法被扩展,修改原创 2021-02-04 17:56:02 · 113 阅读 · 0 评论 -
List [toArray,toString],Arrays
ListtoStringtoArraytoStringList toString直接显示List所有数据但是,数据之间会有空格。解决:list.toString().replace("[","").replace("]","").replace(" “,”");效果展示:toArray直接转会提示数组强转错误。String [] s = (String[])list.toArray();//Ljava.lang.Object; cannot be cast to [Ljava.lang原创 2021-02-02 20:13:15 · 553 阅读 · 0 评论 -
2020IntelliJIDEA 设置utf-8的三处位置
File Encoding 官方文档:https://www.jetbrains.com/help/idea/settings-file-encodings.html#file_dir_encoding原创 2020-07-19 08:53:19 · 459 阅读 · 0 评论 -
第一个最简单的java程序打包成jar用bat启动
易错:1)没有按apply,ok或者可能是因为选择了copy to the output directory and link via manifest,直接关掉然后就出bug不能点build artifact。2)jar包名字不能使用中文。第一步:导出程序jar包。导出的jar包在你的输出目录中。第二步:在jar包文件夹位置打开命令行中运行jar包java -jar -Dfile.encoding=utf-8 yourjarname.jar.最后一步:将jar包转为exe。(要使用原创 2020-09-28 19:38:54 · 361 阅读 · 0 评论 -
Java中泛型为什么要显式多态性,以及在使用泛型需要注意的地方
public class Test { public static void main(String[] args) { List< Sun1> ls = new ArrayList<Sun1>(); Sun1 s = new Sun1(); Sun2 s2 = new Sun2(); List<Father> far = ls; //如果这行代码能通过 far.add(s2); /.原创 2020-07-18 10:37:40 · 569 阅读 · 0 评论 -
关于继承以及对多态的浅层分析
继承:子类永远继承父类非私有的成员非私有化成员(方法),在不覆盖时,调用的都是父类的成员(方法)。class Parent{String i = "i'm parent";void work(){ System.out.println(i);}}class Son{String i = "i'm son";void work(){System.out...原创 2019-10-10 13:38:15 · 90 阅读 · 0 评论 -
关于在foreach进行remove导致java.util.ConcurrentModificationException
在做关于购物删除时报错:源码: int id =Integer.parseInt(req.getParameter("id")) ; List<OrderItem> orders = (ArrayList<OrderItem>)req.getSession().getAttribute("orders"); for(O...原创 2019-07-21 11:07:24 · 191 阅读 · 0 评论