学习笔记
星星的博客
一个java爱好者,希望与大家共同进步!
展开
-
2022年9月26日学习记录
公司学习记录原创 2022-09-26 20:18:05 · 212 阅读 · 1 评论 -
一嗨租车一面笔记
问题:1.自我介绍2.介绍一下你这个项目3.你这个分布式锁是怎么实现的?4.你知道Java中的哪些锁?5.能谈谈你对ReentrantLcok的理解吗?6.你知道Mysql哪些索引?7.描述一下聚簇索引和非聚簇索引?8.什么是回表?9.什么是最左前缀原则?10.连接查询有哪些?11.什么是内连接和外连接?12.做过jvm调优吗?13.项目中使用过线程池吗?14.什么是TCP/IP模型?15.TCP和UDP的区别是什么?16.TCP的可靠是怎么实现的?17.Spring你用过原创 2021-07-28 21:21:24 · 289 阅读 · 0 评论 -
手写简单的Lock
前言昨天的面试,让我知道了阅读源码的重要性,今天就手写三种简单Lock来进行JUC的巩固。代码实现1、简单的Lockpackage com.coolstar.locks;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;public class MyLock1 implements Lock {原创 2021-07-17 19:22:55 · 145 阅读 · 0 评论 -
用友畅捷通面试笔记(已拿offer)
1、自我介绍2、手写二分查找3、聊了一下动态规划4、HashMap的hashCode()方法和hash()方法5、ReentrantLock的Sync和AQS6、如何统计当前线程池里面运行的线程7、java bin的工具你了解哪些8、TCP三次握手和四次挥手9、Linux的高级命令用过哪些10、邮箱的正则表达式11、 stu {id,sex}clzz{name,stuid}grade{stuid,score}求 :每个班里面男同学的平均分...原创 2021-07-16 18:07:19 · 664 阅读 · 3 评论 -
奇安信一面笔记
面试问题1、二叉树的右视图【算法题】2、网络、编程语言、数据库、操作系统你最擅长哪一块?3、写一个并发安全单例4、happens-before的概念5、GC算法6、为什么单表不建议超过500w条数据?7、TCP与UDP的区别?8、TCP的可靠是怎么实现的?...原创 2021-07-08 12:42:42 · 224 阅读 · 0 评论 -
通过“Hello World!“来聊聊类加载器
前言前段时间学习了JVM的相关知识,今天想通过一个"Hello World!"来讲述底层的执行流程,如果有什么理解错误的地方,可以私聊我,相互讨论,共同进步!正文话不多说,先附上代码:package com.coolstar.blog;/** * @author CoolStar */public class HelloWorld { final static String HELLO_WORLD = "Hello World!"; public static原创 2021-06-25 10:55:57 · 117 阅读 · 0 评论 -
猫眼二面笔记
Synchronized加锁的锁对象是什么类加载器有了解吗如果我自定义加载了一个类加载器,然后分别去加载了一个类,比如说student类,然后这个student类里面有一个静态的方法被synchronized修饰,然后我分别用两个线程取load 这个student,之后去调这个静态的方法,然后他们彼此之间阻塞吗?描述一下synchronized升级的过程synchronized的轻量级锁体体现在哪?能够具体的描述ReentrantLock可重入锁的实现吗我在CLH队列里面添加一个节点的时候,我需原创 2021-06-22 20:30:43 · 197 阅读 · 0 评论 -
锁优化
前言synchronized是重量级锁,效率不高。但在jdk 1.6中对synchronize的实现进行了各种优化,使得它显得不是那么重了。jdk1.6对锁的实现引入了大量的优化,如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术来减少锁操作的开销。锁主要存在四中状态,依次是:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态,他们会随着竞争的激烈而逐渐升级。注意锁可以升级不可降级,这种策略是为了提高获得锁和释放锁的效率。自旋锁线程的阻塞和唤醒需要CPU从用户态转为核心态,频繁的阻塞和唤原创 2020-12-04 10:32:49 · 79 阅读 · 0 评论 -
多线程实现的两种方式
前言一个采用了多线程技术的应用程序可以更好地利用系统资源。其主要优势在于充分利用了CPU的空闲时间片,可以用尽可能少的时间来对用户的要求做出响应,使得进程的整体运行效率得到较大提高,同时增强了应用程序的灵活性。更为重要的是,由于同一进程的所有线程是共享同一内存,所以不需要特殊的数据传送机制,不需要建立共享存储区或共享文件,从而使得不同任务之间的协调操作与运行、数据的交互、资源的分配等问题更加易于解决。线程和进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时原创 2020-11-27 14:01:27 · 242 阅读 · 0 评论 -
Redis读写分离笔记
前言单机Redis的读写速度非常快,能够支持大量用户的访问。虽然Redis的性能很高,但是对于大型网站来说,每秒需要获取的数据远远超过单台redis服务所能承受的压力,所以我们迫切需要一种方案能够解决单台Redis服务性能不足的问题。1.1 Redis性能测试1.1.1 redis-benchmarkredis-benchmark是官方自带的Redis性能测试工具,用来测试Redis在当前环境下的读写性能。我们在使用Redis的时候,服务器的硬件配置、网络状况、测试环境都会对Redis的性能有所影响原创 2020-11-25 17:18:43 · 310 阅读 · 4 评论