- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 第三章 Java内存模型
一、java内存模型的基础 1、关键问题 在并发编程中,主要要处理两个关键问题,即线程间的通信与同步。线程通信机制有两种,一种是共享存储,一种是消息传递。同步主要是指程序中用于控制不同线程间操作发生的相对顺序的机制。 2、java内存的抽象模型 Java线程之间的通信由JMM进行控制,抽象内存模型如下图: JMM通过控制主内存与每个线程对应的本地内存的交互,来为java程序员提供可见性的保证。 ...
2019-07-13 17:40:50
162
原创 第二章 Java并发机制的底层实现原理
Java并发机制的底层实现原理 1、volatile的应用 volatile要保证共享变量的可见性。java规范中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能够被准确和一致地更新,线程应该用排他锁单独获得这个变量。计算机系统可以使用缓存一致性模型来保证volatile的可见性(例如MESI协议)。 值得注意的是volatile只保证可见性,而不...
2019-07-05 21:23:23
153
原创 第一章 并发编程的挑战
并发编程的挑战 并发编程的目的是为了让程序运行的更快,最大程度地让程序并行执行。但是在并发编程的过程中,也会面临许多的挑战,例如上下文切换、死锁以及资源限制的问题。 1、上下文切换 多线程程序在执行的过程中,需要进行线程切换,这就涉及到上下文切换的问题。上下文切换需要额外的资源和时间开销,所以过于频繁的上下文切换会拖慢程序的执行速度。 一般减少上下文切换的方法如下: 1、无锁并发编...
2019-07-05 17:32:49
158
原创 java虚拟机内存分布与对象揭秘
导读 与c++程序员不同,java程序员在编写代码的过程中并不需要直接与内存打交道,而是把内存分配与动态回收的任务交给java虚拟机。这大大简化了程序员编写代码的工作,但同时由于java程序员不需要关心内存的使用,导致其对虚拟机自动管理内存的机制了解不足,每当程序出现内存相关的异常或错误时,程序员往往无从下手。所以作为一名合格的java程序员,还是有必要对java虚拟机的内存管理...
2019-04-02 16:45:52
205
原创 eclipse相关快捷键
1、查看一个类或接口的相关实现类: 选中类名或者接口名,再按ctrl加t键 2、查看某个类的快捷键 ctrl+shift+t 3、Run ctrl+F11 4、内容提示快捷键 Alt+/ 5、强转快捷键 ctrl+1 6、快速注释 ctrl+shift+/ ...
2019-02-21 22:53:34
135
原创 一个简单的利用JDBC连接mysql的应用程序
JDBC访问数据库的步骤 JDBC接口和类是开发Java数据库程序的构建模块。典型的访问数据库java程序分为以下四步: 1、加载驱动 连接到数据库之前,应使用以下语句,加载一个合适的驱动程序。语句如下: Class.forName("JDBCDriverClass"); 不同的数据库管理系统的驱动类不同,mysql的驱动类为com.mysql.cj.jdbc.Driver,其可在my...
2019-02-20 21:56:06
460
原创 JavaFX中Image的路径问题
写八皇后的时候发现: Image image = new Image("image/queen.jpg"); 总是报异常,搞了半天,原以为是URL写错了,之后上网查找,原来网络图像文件前面加“http:”,而本地文件则要加“file:”。将源代码改为: Image image = new Image("file:image/queen.jpg"); 问题就解决了。 ...
2018-09-20 16:14:53
9217
16
原创 win10下JDK安装及环境变量配置
JDK安装及java环境配置(win10) 以前为了学习java,安装过eclipse和jdk,并进行了java的环境配置,也没有出现什么问题。今天突发奇想,想用命令行对java源文件进行编译和执行,发现java命令可以正常使用,但javac一直显示不是内部命令。上网查资料发现很多人遇到同样的问题,但解决的方法大家是众说纷纭,有的说win10下环境变量要用绝对路径,有的说系统和用户的环境变量都要...
2018-07-21 22:10:34
241
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人