![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 81
Geepyyyy
不要只是拾人牙慧
展开
-
Java string总结
整理一下java String的基础知识,整合了一些网上大佬们的笔记资料1.String被声明为最终的,不可被继承,内部由字符数组存储数据,也被声明为最终的决定。因此字符串也就不可变。 2.不可变: 1)用于存储散列值 2)可以使用字符串池 3)用字符串做参数安全性高 ...原创 2018-12-19 14:45:32 · 80 阅读 · 0 评论 -
一个类中的两个方法都加了同步锁,多个线程能同时访问这个类的两个方法吗?
看到这个问题第一反应是不懂,然后查询了网上的一些说法,感觉略有不一。细看之下发现大家对这个问题的分析角度不太一样,就会出现不同的结果,在这里记一下我收集来的不同的角度和自己的例子,感觉这个题目还是蛮有意思的。首先,同步锁有两种,JVM的synchronized和JDK的Lock;然后,多个线程访问这个类的两个方法也有不同的形式,例如访问这个类的两个方法是通过同一个类的实例对象来访问还是通过不同...原创 2019-02-22 18:47:33 · 8683 阅读 · 5 评论 -
java多线程思路整理
别人的多线程:你的多线程: 这几天看了看多线程,虽然还是一脸懵,不过已经比之前有头绪多了,之前看的关于线程的知识都比较散,现在希望从自己的理解出发,将这些线程相关的东西连成一条线。文章以思路为主,整理我自己关于线程的逻辑思考,设计具体的实现不多,都给出了可参考的博文,如有不对请指正 使用多线程是为了提高效率,让多个线程并行地执行,而多线程主要要解决的问题就是要让并发的线程...原创 2019-02-26 21:32:31 · 303 阅读 · 0 评论 -
java对象的克隆
摘取至https://blog.csdn.net/ztchun/article/details/79110096一.对象赋值如果直接对象赋值,例如:stu2 = stu1那么情况将是:栈中两个对象名称指向同一块堆内存。更改任何一个对象中的值都会导致另一个的值改变,因为就是同一块内存空间。二.浅克隆被复制的类需要实现Clonenable接口(不实现的话在调用clone方法会抛出CloneNo...转载 2019-01-15 16:40:10 · 121 阅读 · 0 评论 -
乐观锁,被悲观锁与无同步方案
一.乐观锁乐观:总是认为自己在访问数据的时候不会遇上其他人来修改数据,因此不加锁,不会把别人阻塞住,即使用非阻塞同步。1.CAS机制(compare and swap):使用三个操作数,分别是内存地址A,预期原值B,新值C。我理解的过程如下,如果一个线程带着新值C想要修改原值B,则该机制会先比对内存地址A中的预期原值,如果这个值是B,那么就允许这个线程把B值修改为C。如果有多个线程同时进来...原创 2019-01-13 17:59:18 · 236 阅读 · 0 评论 -
JUC包中的同步器(AQS)
AbstractQueuedSynchronizer:同步器,用来实现线程间的协作一.CountdownLatch 内部维护一个计数器,当每次调用countDown方法的时候,计数器都会-1,减到0时,所有因为调用了await()而等待的线程都会被唤醒可以用来让main线程等待,防止其他线程没结束主线程就结束了。二.CyclicBarrier 内部维护一...原创 2018-12-28 17:06:31 · 273 阅读 · 0 评论 -
JDBC连接mysql步骤
步骤:1.加载mysql连接驱动(Driver)到JVM类中 try { Class.forName("com.mysql.jdbc.Driver") ; } catch (Exception e) { System.out.println("数据库驱动加载失败!"); e.printStackTrace(); } //加载成功后,会将Driver类的实...转载 2018-12-27 10:14:39 · 138 阅读 · 0 评论 -
Java tips
持续一些不容易被注意或者容易忘记的小点1.Integer.valueOf(123) :会先去缓存迟查找有没有当前对象,有就直接调用缓存池中的对象。Integer缓存池的大小为-128~1272.String Pool在java8之后从运行时常量池移到了堆3.Switch不能用long类型4.final关键字对于引用类型,不能改变引用,但是引用的对象本身可以改变5.静态变量也叫类...原创 2018-12-19 16:23:34 · 87 阅读 · 0 评论 -
抽象类与接口总结
零零散散看了无数遍抽象类与接口的区别却总是也记不住,今天总结一下之前看过的抽象类与接口1.抽象体 抽象类和接口实际都是属于抽象体,课上老师经常说,抽象就是表达一种事物所具备的通用的,共有的能力,包含的是一个抽象的概念,将一个事物抽象出来。从这个语境上看,既然是抽象出来的,那就没有具体的细节,那在体现在程序中就是不能够被直接实例化。即:抽象体是一组行为特征的集合。 ...原创 2018-12-19 15:44:44 · 247 阅读 · 0 评论 -
JVM垃圾回收Garbage Collection
https://www.cnblogs.com/whgk/p/6138522.htmlhttps://www.cnblogs.com/xiarongjin/p/8309839.html一.要回收的对象所在1.JVM运行时数据区如下,要回收的是无用的对象,对象存在于下图的堆中堆中分为新生代,老年代,永久带,如下图1.新生代主要是用来存放新生的对象。一般占据堆的1/3空间。由于频繁创...转载 2019-02-23 15:38:48 · 125 阅读 · 0 评论