随笔分类 -  javaSE

摘要:Java集合如Map、Set、List等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int、long、float、double等基础类型的数据。 使用反射可以破解泛型T类型,如下: 泛型擦除概念: 声明时的泛型擦除处理机制: 编译成.class文件时,会将.java文件中 阅读全文
posted @ 2019-03-19 01:13 hcss 阅读(431) 评论(0) 推荐(0)
摘要:测试结果如下: a == b :truea == c :false d == e :falsed == f :falsed e f 互不相等(false为正确测试结果):false Test1内: t = 1Test2内: t = 131g = 0h = 130 阅读全文
posted @ 2019-03-19 00:52 hcss 阅读(494) 评论(0) 推荐(0)
摘要:jvm全称 java virtual machine (java虚拟机),也就是在计算机上再虚拟一个计算机,它存在于计算机内存中并运行在操作系统之上的。 javap -v class文件名 > 输出文件名 命令:将class文件,翻译成可读懂的字节码指令文件,里面包含了各种各样的指令。 字节码文件( 阅读全文
posted @ 2019-03-03 01:28 hcss 阅读(143) 评论(0) 推荐(0)
摘要:1.一个线程执行结束后会执行该线程自身对象的notifyAll方法,这个是在jvm中实现的。 2.join的作用是:当我们调用某个线程的这个方法时,这个方法会挂起调用线程,直到被调用线程(thread.join())结束执行,调用线程才会继续执行。。 3.join方法体里只有wait,却没有noti 阅读全文
posted @ 2019-02-22 15:52 hcss 阅读(531) 评论(0) 推荐(0)
摘要:1.通信就是指相互交换一些数据或者发送一些控制指令,比如一个线程给另一个暂停执行的线程发送一个恢复执行的指令。 可变共享变量是天然的通信媒介,也就是说一个线程如果想和另一个线程通信的话,可以修改某个在多线程间共享的变量,另一个线程通过读取这个共享变量来获取通信的内容。 2.这里边就不得不提wait/ 阅读全文
posted @ 2019-02-21 23:00 hcss 阅读(400) 评论(0) 推荐(0)
摘要:在多线程并发编程的过程中,执行重排序有时候会造成错误的后果,比如一个线程在main线程中调用setFlag(true)的前边修改了某些程序配置项,而在t1线程里需要用到这些配置项,所以会造成配置缺失的错误。但是java给我们提供了一些抑制指令重排序的方式。 1.同步代码抑制指令重排序 将需要抑制指令 阅读全文
posted @ 2019-02-20 23:36 hcss 阅读(285) 评论(0) 推荐(0)
摘要:1.尽量将共享变量(共享变量指的是在堆内存上创建的对象或者数组,包括成员变量、静态变量和数组元素。)定义为局部变量。 2.如果多线程只是读取变量,可以定义全局final。 3.使用ThreadLocal将变量创建为线程私有。 4.加锁(变量的读写位置都进行必要的同步处理;对于同一个字段来说,在多个访 阅读全文
posted @ 2019-02-20 23:01 hcss 阅读(2407) 评论(0) 推荐(0)
摘要:如何使main最后退出呢:(join方法) 阅读全文
posted @ 2019-02-20 13:52 hcss 阅读(254) 评论(0) 推荐(0)
摘要:Thread.sleep()1.静态方法是定义在Thread类中。2.Thread.sleep()方法用来暂停当前执行的线程,将CPU使用权释放给线程调度器,但不释放锁(也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据),进入sleeping状态 的线程不能被notify方 阅读全文
posted @ 2019-02-20 01:36 hcss 阅读(1337) 评论(0) 推荐(0)
摘要:1.线程几种状态图 2.创建线程的两种方式(实现Runnable接口,或者继承Thread类) 定义一个任务就是这么简单哈~不过光有任务没啥卵用,需要创建一个线程去运行这个任务。 java中的Thread类来代表一个线程,我们需要关注它的这几种构造方法: Thread(Runnable target 阅读全文
posted @ 2019-02-19 17:20 hcss 阅读(195) 评论(0) 推荐(0)
摘要:getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从 ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由Class 阅读全文
posted @ 2019-02-15 00:20 hcss 阅读(358) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-02-14 16:42 hcss 阅读(163) 评论(0) 推荐(0)
摘要:对于每一个Java程序员来说,null肯定是一个让人头痛的东西,连Java的发明者都承认这是一项巨大的设计失误,今天就来总结一下Java中关于null的知识. 1.null不属于任何类型,可以被转换成任何类型,但是用instanceof永远返回false.2.null永远不能和八大基本数据类型进行赋 阅读全文
posted @ 2019-02-14 16:40 hcss 阅读(427) 评论(0) 推荐(0)
摘要:1、先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。 2、执行子类的静态代码块和静态变量初始化。 3、执行父类的实例变量初始化 4、执行父类的构造函数 5、执行子类的实例变量初始化 6、执行子类的构造函数 如果类已经被加载: 则静态代码块和静态变量 阅读全文
posted @ 2019-02-14 16:39 hcss 阅读(1228) 评论(0) 推荐(0)
摘要:之后重新理解这个知识点时,又写了一些小例子 阅读全文
posted @ 2019-02-14 15:02 hcss 阅读(143) 评论(0) 推荐(0)
摘要:代码1测试 输出结果如下: java.lang.ArithmeticException: / by zero at com.hcss.cn.Aa1fa.aa(Ja.java:120) at com.hcss.cn.Aa1fa.main(Ja.java:115) finally 分析:虽然try中出现 阅读全文
posted @ 2017-04-29 23:36 hcss 阅读(550) 评论(0) 推荐(0)