自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

char_m的博客

我想去山顶

  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 并发编程——JUC中的重要组件(atomic、信号量、locks、ConcurrentHashMap、线程安全的集合类)这些你都知道吗?

JUC中的重要组件原子类 java.util.concurrent.atomicjava.util.concurrent.locksCallable/Future/FutureTaskSemaphore信号量线程安全的集合类ConcurrentHashMap(重点)理解HashMap的put方法的执行过程.对比HashMap、HashTable、ConcurrentHashMap原子类 java.util.concurrent.atomic原子类内部用的是 CAS 实现,所以性能要比加锁实现 i++ 高

2020-08-07 13:33:10 1870

原创 JVM——什么是代码区、常量区、静态区(全局区)、堆区、栈区这些你知道吗?

什么是代码区、常量区、静态区(全局区)、堆区、栈区?代码区:常量区:静态区(全局区):堆区:栈区:如下图,一般内存主要分为:代码区、常量区、静态区(全局区)、堆区、栈区这几个区域。代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。代码区的内存是由系统控制的代码区的存放 :程序中的函数编译后cpu指令代码区的地址:函数的地址,程序的入口地址,程序的名字函数的名称也是一个指针,可以通过查询函数名称所处的内存地址,查询函数存放的区域常量区:存放常量(程序在运行的期间不能够被改变的量

2020-08-06 17:46:25 1007

原创 多线程——以Sychronized为例实现锁优化的五个面试问题你知道吗?

以Sychronized为例实现锁优化锁优化1、锁消除2、偏向锁3、自旋锁4、锁膨胀5、锁粗化锁优化一些提高锁的效率的策略优化操作主要是以编译器+JVM两者配合进行的1、锁消除锁消除本质是以编辑器和JVM代码运行的情况智能的判断当前的锁有没有必要加 如果没有必要, 就会直接把锁干掉public class Demo3 { public static void main(String[] args) { //StringBuffer 是线程安全的方法中加了Sychron

2020-08-06 17:41:30 259

原创 多线程——关于面试中常见的CAS问题你知道了吗?

关于面试中常见的CAS问题你知道了吗?CASCAS的使用无锁编程CAS缺陷:ABA问题)CASCAS的全称是 compare and swap(字面意思就是比较交换) 他是基于硬件提供的一种基础指令, 也是基于这样的指令, 就可以实现一些特殊的功能(实现锁)针对不同的操作系统,JVM 用到了不同的 CAS 实现原理简而言之,是因为硬件予以了支持,软件层面才能做到。我们假设内存中的原数据v,旧的预期值new,需要修改的新值tmp。比较 new 与 v 是否相等。(比较)如果比较相等,将 tmp

2020-08-06 16:54:43 401

原创 Servlet——利用数据库、前后端接口实现一个简单的博客系统

这里写目录标题需求分析数据库设计1、提取需求中的实体2、实体的属性3、实体之间关系数据库建表Java代码操作a)创建一个类,管理数据库的连接b)创建实体类需求分析1)注册新用户2)登陆已有用户3)展示博客列表(每-项包含了文章的标题,作者)点击标题就会跳转到文章详情页.分页功能也暂时不考虑4)文章详情页中,可以看到文章标题,作者,文章内容评论功能,分类功能,推荐相关文章功能等,先不考虑5)发布新的博客(不考虑富文本编辑.)6)删除自己的博客数据库设计1、提取需求中的实体两张表Use

2020-08-05 18:08:22 1189

原创 多线程——这些锁策略(乐观悲观锁、读写锁、轻量级重量级锁、公平非公平锁、可重入锁)你知道吗?

各种锁策略1、乐观锁VS悲观锁2、读写锁3、重量级锁vs轻量级锁.4、挂起等待锁VS自旋锁5、公平锁Vs非公平锁6、可重入锁7、死锁的典型场景1、乐观锁VS悲观锁乐观锁: 世界大概率是和平的,多个线程竞争一 把锁的概率会很低.(效率高)悲观锁: 世界大概率是出问题的,多个线程竞争一 把锁的概率会很高,会付出更多的成本来进行锁冲突的处理(更安全)两种想法没有优劣之分,要根据具体场景来进行使用.2、读写锁把加锁操作分成了两种.a)读锁b)写锁读锁和读锁之间是没有互斥的(不存在锁竞争)读锁和写

2020-08-05 17:45:48 1976

原创 JVM——类加载的这些面试题(类加载、类加载器、双亲委派模型等等)你真的会了吗?

类加载什么实际会触发某个类的加载a)构造该类的实例b)调用该类的静态属性方法c)

2020-08-05 12:07:06 2212 5

原创 关于深浅拷贝的代码理解

再谈深浅拷贝浅拷贝深拷贝浅拷贝针对对象A拷贝之后得到对象B,对A的修改会对B造成影响class A{ public int num =0;}class B{ public int count =0; public A a;}public class Test4 { public static void main(String[] args) { //先构造一个对象 B b = new B(); b.count

2020-08-04 23:08:56 232

原创 JVM——这七种垃圾回收器你知道吗?

垃圾回收器垃圾回收器Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS老年代收集器G1回收器垃圾回收器评价垃圾回收器好坏的标准:1.回收的空间效率.扫-遍地,能扫出多少垃圾.2.回收的速度.扫- -遍地要花多长时间.3.垃圾回收和应用线程之间能否并发执行.扫地的时候会不会影响到别人干活. (STW)4.垃圾回收器是否是多线程的.5.回收的时间是否是可预测的.承诺10分钟之内一定把地扫完.即使扫的不算非常干

2020-08-02 21:29:34 991

原创 JVM——GC垃圾回收机制的八个重要面试问题你知道了吗?

GC是干什么的C语言特点,相当于是一个手动挡的汽车,挂挡比较麻烦,但是能做到更精确的控制Java语言,相当于是一个自动挡的汽车,开起来更方便,不能像手动车那样精准控制、内存管理:C语言中的内存,申请之后,需要手动释放(free/delete)一旦忘记释放,就容易导致“内存泄漏”Java中的内存,申请之后,不需要手动释放(GC)没有垃圾回收,需要程序主动归还内存(取决于用户的素质),有了垃圾回收,相当于有了一个专门负责的人为什么要有GC内存申请的时机很好确定,但是释放时机是不好确定的。比

2020-08-02 00:53:55 1271

原创 JVM——Java中的引用

1、各种不同的引用引用本质上就是个低配指针,初心,就是为了找对象.引用不光能找对象,还能决定对象的生死!!! (副作用)a)强引用平时用的引用.既能找到对象,也能决定对象的生死.b)软引用既能找到对象,也能一定程度的决定对象生死(保对象一时).保对象一时:这个对象已经没有强引用指向了,只有软引用指向.如果内存充裕,此时这个对象是不会被回收的.但是如果内存不够了,软引用的对象也会被回收.c)弱引用只能找到对象,但是不能决定对象的生死(解决引用计数的循环引用问题的一种思路就是弱引用)d)

2020-08-01 23:41:53 208

(大作业 已配置).pkt

1.要求 配置完路由器 路由器各个端口(频率使用64000) 路由器名称 端口的ip地址 2.用 ospf 协议 设置为200的进程号 并且区域都为0 3.配置二层交换机及与单臂路由和三层交换机所连的二层交换机名称。 以及需要配置的vlan vlan10 vlan20 vlan11 vlan22 4.对三层交换机进行配置 5.配置单臂路由器 6.配置ACL 禁止主机PC3所在网段访问PC5 编号 10 禁止PC1访问PC7 编号 20

2020-07-10

进程调度实验报告.doc

一、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。模拟在单处理器情况下的处理器调度,加深处理器调度的工作。

2020-07-03

银行家算法实验报告.doc

使用java实现银行家算法,1)可利用资源向量Available 是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。

2020-07-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除