首页
学习
活动
专区
工具
TVP
发布

钟绍威的专栏

专栏作者
53
文章
85680
阅读量
28
订阅数
jvm内存区域程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存
概述 jvm内存分为几个区域: 程序计数器 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 这些内存区域是在java进程中细分的,为java程序提供服务 不同的区域存储的内容不一样,生命周期的也不一样 内存区域 程序计数器 这个就跟处理器中的程序计数器的功能差不多,是记录下一条字节码的地址 不过处理器的程序计数器是为进程服务的,jvm中的程序计数器是为线程服务的 所以jvm的程序计数器是线程私有的,声明周期和线程相同,各线程之间的程序计数器互不干扰 因为是记录下一条字节码的地址,所
用户1174983
2018-02-05
5450
锁原理:偏向锁、轻量锁、重量锁1.加锁2.撤销偏向锁1.加锁2.解锁3.膨胀为重量级锁
 java中每个对象都可作为锁,锁有四种级别,按照量级从轻到重分为:无锁、偏向锁、轻量级锁、重量级锁。每个对象一开始都是无锁的,随着线程间争夺锁,越激烈,锁的级别越高,并且锁只能升级不能降级。 一、j
用户1174983
2018-02-05
3.5K0
Java内存模型—JMMhappens-before规则
 有时候编译器、处理器的优化会导致runtime与我们设想的不一样,为此Java对编译器和处理器做了一些限制,JAVA内存模型(JMM)将这些抽象出来,这样编写代码时就无需考虑那么多底层细节,并保证“只要遵循JMM的规则编写程序,其运行结果一定是正确的”。 JMM的抽象结构  在Java中,所有的实例、静态变量存储在堆内存中,堆内存是可以在线程间共享的,这部分也称为共享变量。而局部变量、方法定义参数、异常处理参数是在栈中的,栈内存不在线程间共享。  而由于编译器、处理器的优化,会导致共享变量出现可见性问题,
用户1174983
2018-02-05
4380
Volatile实现原理实现原子性happens-before关系从happends-before规则分析可见性编译器层面实现可见性处理器层面实现可见性
 读写volatile变量就像是访问一个同步块一样,是原子的且是可见的,总是能访问到最新的值。 原子性  读写volatile变量是原子操作,但读写变量不就是一条指令的事吗(mov、ldr),难道这还可分?没错绝大多数变量读写都是原子的,除了在32位JVM下对long、double的读写,就不是原子的。这是因为在32位下,总线宽度就只有32bit,对64位数据的读写需要分两次进行,依次读写高低32位。但是读写volatile变量由于使用了LOCK前缀指令,锁住了内存,所以即使是64位的数据也是原子的。 读
用户1174983
2018-02-05
1.8K0
锁的实现原理解锁的实现加锁的实现
 锁在多线程中是必不可少的,他给多线程提供了同步的功能,让多线程可以互斥的执行同步块,并具有可见性。  本文将从happens-before关系出发,结合ReentranLock源码,如何用内存屏障、CAS操作、LOCK指令实现锁的功能。 锁的happens-before关系 happens-before规则 程序顺序规则:在一个线程中,前面的操作happens-before后面的操作 锁规则:对同一个锁,解锁happens-before加锁。 传递性规则:A happens-before B,B hap
用户1174983
2018-02-05
1.4K0
spring整合hibernate
spring整合hibernate包括三部分:hibernate的配置、hibernate核心对象交给spring管理、事务由AOP控制 好处: 由java代码进行配置,摆脱硬编码,连接数据库等信息更灵活 session等生命周期得到更好的控制,session和事务依赖注入到DAO中,更爽 事务由AOP管理更加清晰,自动管理事务 hibernate的配置 spring提供了一个sessionfactory的实现,LocalSessionFactoryBean 通过在LocalSessionFactoryBe
用户1174983
2018-02-05
8890
struts的声明式异常处理 demo
情景 使用Struts封装的下载文件的功能 当下载文件找不到的时候,struts获取的InputStream为null 这个时候,就会报500错误 java.lang.IllegalArgumentException : Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack. Check the tag specified for this action. or
用户1174983
2018-02-05
4500
Unsupported configuration attributes: [FILE_UPLOAD]
Caused by: java.lang.IllegalArgumentException: Unsupported configuration attributes: [FILE_UPLOAD] 情景: 有一个上传URL,设置权限为FILE_UPLOAD 原因: 查资料后发现,spring security 的access权限需要是ROLE_开头 可以在配置文件更改rolePrefix=”ROLE_” 解决方案: 在access权限前面加上ROLE_
用户1174983
2018-02-05
8510
设计3D标签为什么要有一个字符间隙tracking?为什么要重写getPrefferedSize()?画三遍的顺序有讲究
java自带的Label太枯燥了,真是拿不出手啊。 所以,我们要设计3D标签!! 看看下面这张图 原理 看看这图,可以看到哈哈有三种颜色:白色、黑色和灰色 实现的时候并不像PS那样,
用户1174983
2018-02-05
7470
创建被图像填充的组件解释几处做法解释几点
如果你直接new一个组件的话,组件是标准外观 如果需要改变组件的外观,最关键的就是要就需要重写组件的paintCoponent(Graphics g)方法,同时需要调整组件的大小 DIY的JPanel 下面用代码说话 import javax.swing.*; import java.awt.*; class ImagePanel extends JPanel{ private Image image;//用来储存背景对象 private Dimension dimension;//用
用户1174983
2018-02-05
1.2K0
当输入流和输出流同时作用一个文件
当输入流和输出流同时作用一个文件会发生什么 以前试过:当输入流或输出流作用在一个文件上,而且流没有关闭的话,这时候我想删除这个文件是失败的,会提示文件被占用 下面用代码证明一下 import java.io.*; class Demo{ public static void main(String[] args)throws IOException{ File file=new File("C:\\Demo.txt");//这个文件只有一行 BufferedRea
用户1174983
2018-02-05
5310
NotSerializableException解决方法NotSerializableException
NotSerializableException 问题描述: 想要写入对象的时候的时候回抛出NotSerializableException:类名 原因: 写入的对象没有序列化,即没有实现java.io.Serializable接口 解决方法: 将要被写出对象的类序列化,可以不设置序列号,这时由系统自动设置,也可以自己设置序列号 设置方法: private static final long serialVersionUID = xxxxxx;////xxxx看自己喜欢 系统自动生成的序列
用户1174983
2018-02-05
1.5K0
java.io.StreamCorruptedException: invalid type code: AC错误的解决方法
问题描述: 在向一个文件写入可序列化对象时,每次只想向文件的末尾添加一个可序列化的对象,于是使用了FileOutputStream(文件名,true)间接的构建了ObjectOutputStream流对象,在向外读数据的时候第一次运行的时候不会报错,在第二次就会报java.io.StreamCorruptedException: invalid type code: AC错误。 原因: 在一个文件都有一个文件的头部和文件体。由于对多次使用FileOutputStream(文件名,true)构建的Object
用户1174983
2018-02-05
1.9K0
怎么改变按钮的图标
按钮的图标一开始很难看 所以要改 改变按钮图标的方法: javax.swing.AbstractButton中的方法 setContentAreaFilled(boolean) //是否填充区域,如果你的自定义图片不是矩形或存在空白边距,可以设为 false 使按钮看起来透明。 setBorderPainted(boolean) //是否绘制边框 setFocusPainted(boolean b) //是否绘制焦点(例如浅色虚线框或者加粗的边框表明按钮当前有焦点)。 s
用户1174983
2018-02-05
2.1K0
怎么实现关闭窗口
思路:在java源文件中查找源代码 首先,我们知道JFrame.setDefaultCloseOperation(int operation)中提供了四种方式去实现关闭窗口 JFrame在包javax.Swing中,所以他继承了java.awt.Frame setDefaultCloseOperation(int operation) 下面贴上 JFrame.setDefaultCloseOperation(int operation) 的代码 public void setDefaultC
用户1174983
2018-02-05
4.1K0
SequenceInputStreamSequenceInputStream构造方法读关流刷新
SequenceInputStream从名字上看, 他是一个序列字节输入流 既然是个序列 那么意味着 SequenceInputStream装着许多的输入流 所以 可以用他来合并文件 SequenceInputStream的主要方法 SequenceInputStream构造方法 new SequenceInputStream(Enumeration) 接受一个输入流泛型的枚举 然后怎么创建枚举呢?? Vector.elements():Enumeration Vector继承自Ab
用户1174983
2018-02-05
6310
初识字节流+实现缓冲字节流OutputStream的主要方法构造方法读关流实现BufferedInputStream实现BufferedOutputStream为什么read()返回的是Int型而不是
java中的IO流可以分为两种:字符流和字节流 字符流,顾名思义,就是对字符进行操作,只能操作文本文件 字节流,就是对字节进行操作,然而所有文件都是由字节组成的,可以字节流可以操作一切文件 字符流中的两个大类:Reader和Writer 详情可见 https://cloud.tencent.com/developer/article/1036410 简单的Writer和Reader 字节流中也同样有两个大类:InputStream和OutputStream 又“读进来,写出去”,所以
用户1174983
2018-02-05
1.2K0
简单的Writer和ReaderWriter的主要方法Writer工作原理Reader的主要方法readLine():String
Writer用于写出去到文件中,Reader用于将外面的文件读进来控制台 Writer和Reader有许多子类,但是子类大多都是直接运用父类Writer和Reader的方法,而且Writer和Reader的方法不多,而且有共性,所以只需弄懂Writer和Reader的方法即可。 Writer和Reader都是抽象类,所以想输入输出只能用他们的子类 ---- Writer Writer的主要方法 1.构造方法 以FileWriter为例 FileWriter(String filename,b
用户1174983
2018-02-05
7890
矩阵的基本知识构造重复矩阵的方法——repmat(xxx,xxx,xxx)构造器的构造方法单位数组的构造方法指定公差的等差数列指定项数的等差数列指定项数的lg等差数列sub2ind()从矩阵索引==》
要开始学Matlab了,不然就完不成任务了 java中有一句话叫作:万物皆对象 在matlab我想到一句话:万物皆矩阵 矩阵就是Java中的数组 不过矩阵要求四四方方,Java中的数组长和宽可以不同长度 一个有意思的矩阵——结构器 听到这个名词,我想到了构造函数#34 结构器有点像对象 具有不同的field属性(成员变量) 一个属性就相当于一个矩阵容器,所以为什么说万物皆矩阵呢,哈哈 不同于普通矩阵,结构器可以携带不同类型的数据(String、基本数据等等) 多维构造器
用户1174983
2018-02-05
1.4K0
在Java中如何实现“Pless presss any key to continue.”
import java.util.*; class Continue{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); System.out.println("Pless presss any key to continue."); String key=scanner.next(); } } 但是这样写一定要回车才可以,而且
用户1174983
2018-02-05
6370
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档