- 博客(19)
- 收藏
- 关注
原创 juc下面的locks包的结构
首先这个包中有三个接口,且都不继承任何接口1.AQS相关类{@link AbstractQueuedSynchronizer}的版本,其中同步状态保持为{@code long}。此类具有与{@codeAbstractQueuedSynchronizer}完全相同的结构,属性和方法,除了所有与状态相关的参数和结果均定义为{@code long}而不是{@code i...
2019-09-25 14:17:09
420
原创 JUC包的框架
juc包下面的所有的类package java.util.concurrent;==========》locks文件夹+atomic文件夹+其他整体的结构图大致如此
2019-09-25 11:27:11
125
原创 SpringBoot的重要注解@SpringBootApplication
一.使用以及作用@SpringBootApplication标注在哪个类上说明这个类是SpringBoot的主配置类SpringBoot就应该运行这个类的main方法来启动SpringBoot应用@SpringBootApplicationpublic class HelloWorldMainApplication { public static void main(Str...
2019-07-01 17:00:17
435
转载 2.1 Spring
来源于牛客网:https://www.nowcoder.com/discuss/1619911、说一下IOC和AOP?IOCSpring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供 了 Bean 实例缓存、生命周...
2019-06-28 15:57:04
170
转载 计算机网络部分相关面试问题
链接:https://www.nowcoder.com/discuss/161991来源:牛客网❤1、网络概述1、TCP协议在哪一层?IP协议在那一层?HTTP在哪一层?❤2、运输层1、讲一下TCP的连接和释放连接。1.TCP整个过程流程图并且TCP整个过程可以看成是状态机2.TCP建立过程(三次握手)TCP连接过程:(1) 服务...
2019-06-28 15:09:13
328
原创 华为机试题--坐标移动
题目描述开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S)+数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;A1A;$%$;YAD;等。下...
2019-06-22 20:06:04
308
转载 1.2.7 IO和NIO、AIO
BIO、NIO、AIO的概述首先,传统的 java.io包,它基于流模型实现,提供了我们最熟知的一些 IO 功能,比如 File 抽象、输入输出流等。交互方式是同步、阻塞的方式,也就是说,在读取输入流或者写入输出流时,在读、写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。java.io包的好处是代码比较简单、直观,缺点则是 IO 效率和扩展性存在局限性,容易成为应用性...
2019-06-20 19:53:15
116
转载 1.2.6 GC (Garbage Collection垃圾回收)
1、java中内存泄露是啥,什么时候出现内存泄露?java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景。1. 静态类的使用诸如 HashMap、Vector 等集合类的静态使用最容易出现内存泄露,因为这些静态变量的生命周期和应用程...
2019-06-20 17:15:32
197
转载 1.2.5 JVM
1、JVM回收算法和回收器,CMS采用哪种回收算法,怎么解决内存碎片问题?1 标记-清除算法(Mark-Sweep) 标记-清除算法采用从根集合(GC Roots)进行扫描,对存活的对象进行标记,标记完毕后,再扫描整个空间中未被标记的对象,进行回收,如下图所示。标记-清除算法不需要进行对象的移动,只需对不存活的对象进行处理,在存活对象比较多的情况下极为高效,但由于标记-清除算法直接回收不...
2019-06-20 16:38:54
164
转载 求两个整数之和
链接:https://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215来源:牛客网题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 1 2 3 4 5 6 7 8 9 10 ...
2019-06-18 20:37:21
1442
转载 复杂链表的复制
链接:https://www.nowcoder.com/questionTerminal/f836b2c43afc4b35ad6adc41ec941dba来源:牛客网题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空...
2019-06-18 20:25:04
127
转载 1.2.4 反射
1、反射的实现与作用定义与基本功能:反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。java反射框架主要提供以下功能:在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法) 在运行时调用任意一个对象的方法主要用途:...
2019-06-18 11:04:53
104
转载 1.2.3 JDK
1、Java中的LongAdder和AtomicLong的区别AtomicLong的实现方式是内部有个value 变量,当多线程并发自增,自减时,均通过cas 指令从机器指令级别操作保证并发的原子性。 唯一会制约AtomicLong高效的原因是高并发,高并发意味着CAS的失败几率更高, 重试次数更多,越多线程重试,CAS失败几率又越高,变成恶性循环,AtomicLong效率降低。LongA...
2019-06-18 10:41:28
180
转载 1.2.2 锁
链接:https://www.nowcoder.com/discuss/161991来源:牛客网1、讲一下非公平锁和公平锁在reetrantlock里的实现。以非公平锁为例,看 NonfairSync 的 lock()逻辑 :可以简单的概括为下面三个步骤:1. 进入 lock() 方法首先 cas 尝试获取锁。2. 不成功则进入 acqure(),进入tryAcquire()。在t...
2019-06-17 17:34:05
98
转载 1.2.1 线程1
题目来源:https://www.nowcoder.com/discuss/1619911、多线程中的i++线程安全吗?为什么?每个线程都有自己的工作内存,每个线程需要对共享变量操作时必须先把共享变量从主内存 load 到自己的工作内存,等完成对共享变量的操作时再 save 到主内存。问题就出在这了,如果一个线程运算完后还没刷到主内存,此时这个共享变量的值被另外一个线程从主内存读取到了,...
2019-06-17 16:54:37
203
转载 1.1.4 集合
1、Map和ConcurrentHashMap的区别?ConcurrentHashMap线程安全,而HashMap非线程安全 HashMap允许Key和Value为null,而ConcurrentHashMap不允许 HashMap不允许通过Iterator遍历的同时通过HashMap修改,而ConcurrentHashMap允许该行为,并且该更新对后续的遍历可见详解(转载)https:...
2019-06-16 19:15:38
202
转载 1.1.3 面向对象
1.wait方法底层原理object中的方法,可以暂停线程,期间会释放对象锁,不像sleep方法,线程休眠期依然持有锁,wait方法的线程,必须调用notify或notifyAll方法唤醒线程!wait方法会将当前线程放入wait set,等待被唤醒,并放弃lock对象上的所有同步声明。1、将当前线程封装成ObjectWaiter对象node;2、通过ObjectMonitor::...
2019-06-15 20:55:19
301
原创 1.1.2 关键字1
JAVA中常考的关键字主要与并行,锁等机制有关1.介绍一下Syncronized锁,如果用这个关键字修饰一个静态方法,锁住了什么?如果修饰成员方法,锁住了什么?synchronized是java的关键字,可以修饰于代码块,实例方法,静态方法。作用是为修饰的方法加锁,提供线程安全。1.对于普通的同步方法:锁是当前的对象2.对于静态函数的同步方法:锁是指引用当前类的class对...
2019-06-14 12:23:48
138
原创 1.1.1 Java基础1
题目来源:牛客网Java后台开发面试考点汇总1.为什么重写equals还要重写hashcode?hashcode是根据对象的内存地址经哈希算法得来的。并且有一些规定:两个对象相等,hashcode一定相等(equal输出true)两个对象不等,hashcode不一定不等(equal输出false)hashcode相等,两个对象不一定相等(equal输出true)has...
2019-06-13 18:36:55
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人