- 博客(8)
- 资源 (10)
- 收藏
- 关注
原创 ConcurrentHashMap的实现
ConcurrentHashMap的实现 ConcurrentHashMap在内部分为若干个小的HashMap,称为数据段(Segment)。在默认情况下,一个ConcurrentHashMap被细分为16个数据段,对每个数据段都单独进行加锁操作。Segment的个数=锁的并发度 ConcurrentHashMap是由Segment数组和HashEntry数组组成的。Segment继承了可重入锁(ReentrantLock),它在ConcurrentHashMap中扮演锁的角色。Hash...
2021-05-23 21:19:18 370 1
原创 synchronized和ReentrantLock区别
synchronized和ReentrantLock区别 相同点 都用于控制多线程对共享对象的访问 都是可重入锁 都保证了可见性和互斥性 不同点 ReentrantLock显式获取和释放锁;synchronized隐式获取和释放锁。为了避免程序出现异常而无法正常释放锁,在使用ReentrantLock时必须在finally语句块中执行释放锁操作。synchronized发生异常时,会自动释放线程占用的锁,故不会发生死锁现象。Lock发生异常,若没有主动释放,极有可能造成死锁,故需要在f
2021-05-23 11:30:52 196
转载 2021-05-21
Java中静态方法能否被重写 在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写(Override)。方法重写又称方法覆盖。public class Test { public static void main(String[] args) { /** * 结论: * 静态方法可以被继承,但是不能被覆盖,即不能重写。 * */
2021-05-21 21:13:26 95
原创 嵌入式·基于HAL库平台的搭建
STM32CubeMX的安装一、Java运行环境的安装二、下载STM32CubeMX三、安装stm32cubeMX软件四、利用stm32cubeMX生成一个Keil-MDK工程一、Java运行环境的安装基于HAL库进行STM32开发,由于STM32CubeMX软件是基于Java环境运行的,因此需要安装JRE,可以再JAVA官网上下载安装文件。大家根据自己的操作系统安装合适的版本!(本人一直使用的是JDK1.8)如果平时有使用Java编程的,可以直接下载JDK,它会一并安装 JRE二、下载STM3
2021-05-20 10:58:13 571
原创 eclipse导入web项目【解决一直有红叉的问题】
eclipse导入web项目的步骤文章目录eclipse导入web项目的步骤一、导入项目二、配置项目三、调试tomcat服务器本文截图中使用的是STS,和eclipse的布局以及功能一样!一、导入项目点击顶部的 File --> import打开General –> Existing projects into Workspace –> Next—>Browse二、配置项目导入之后的项目一般会出现可恶的红叉×右键点击项目名 —> 选
2021-05-15 23:23:45 3158 1
原创 MOOC微信小程序开发从入门到实践~笔记
MOOC微信小程序开发从入门到实践~笔记1、图标网站【icon】www.iconfont.cn2、新建项目是必须需要AppID3、app.js是页面逻辑文件app.json是页面全局配置文件(pages windows)app.wss全局页面的样式project config.json项目的配置文件4、获取用户信息:wx.getUserInfo()5、【tabBar】:如果小程序是一个多tab应用(客户端窗口的底部或顶部有tab栏可以切换页面),可以通过tabBar配置项指定tab切换时现实
2021-05-15 17:42:53 1877
原创 JSP的运行机制
JSP的运行机制在一个jsp文件第一次被请求时,jsp引擎把该jsp文件转换成为一个servlet。而这个引擎本身也是一个servlet。jsp的运行过程如下所示:jsp引擎先把该jsp文件转换成一个java源文件(servlet),在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。如果转换成功,jsp引擎用javac把该java源文件编译成相应的class文件。创建一个该servlet(jsp页面的转换结果)的实例,该servlet的jspinit()方法
2021-05-15 16:51:30 804
原创 Lambda表达式
Lambda表达式例://创建线程//原写法Thread td = new Thread(new Runnable){ @Override public void run(){ System.out.println("hello,,,"); }});td.start();//lambda写法Thread td1 = new Thread(()->System.out.println("hello,lambda"));td1.start();
2021-05-11 14:33:29 177
MySQL有几种存储引擎,有什么区别?
2022-10-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人