
java
B Cabbage
这个作者很懒,什么都没留下…
展开
-
解决idea的控制台输出Tomcat日志乱码问题
解决idea的控制台输出Tomcat日志乱码问题乱码原因由于window下的idea默认编码集都默认是GBK,而Tomcat目前版本是UTF-8,所以会出现乱码。第一种解决方案:将Tomcat输出日志的编码改为GBK在Tomcat的config目录下有一个logging.properties文件,文件中可以在五个地方设置编码,分别对应红色圆圈内五个日志输出文档(默认只选中了两个),将UTF-8的地方全改成GBK1catalina.org.apache.juli.FileHandler.l原创 2020-10-30 00:03:31 · 1127 阅读 · 0 评论 -
java多线程(六)可重入锁与CAS
可重入锁可重入锁就是,如果某一个线程试图获取一个已经由它自己持有的锁时,那么这个锁就会立刻成功,并且会将这个锁的计数值加1,而当线程退出同步块时,计数器会减1,当计数值等于0时,锁释放。假设没有可重入锁,在第二次企图获得已持有的锁时就会进入死锁状态。下面简单写一个不可重入锁和可重入锁,加深理解代码不可重入锁,会一直死锁,程序运行后不会停止public class LockTes...原创 2020-04-10 18:42:14 · 470 阅读 · 0 评论 -
java多线程 (五)ThreadLocal
介绍在多线程的环境下,每个线程都有自己的数据,一个线程使用自己的局部变量比使用全局变量更方便更安全,这样不会影响其他线程。ThreadLocal就可以为每个线程创建和管理它们各自的数据ThreadLocal常用方法ThreadLocal的常用方法set(),get(),remove()。Modifier and TypeMethod and Description...原创 2020-04-10 13:52:54 · 203 阅读 · 0 评论 -
java多线程(四)指令重排和volatile
指令重排指令重排是指执行代码的顺序和编写代码不一致,即虚拟机优化代码顺序,编译或运行时环境为了优化程序性能而采取的对指令进行重写排序执行的一种手段。如果两个操作访问一个变量,而且这两个操作中有一个为写操作,此时这两个操作之间存在数据依赖(简单说就是这两个操作若互换顺序了,就会带来不同的结果)。编译器和处理器重排指令顺序时候,会遵守数据依赖,编译器和处理器不会改变存在数据依赖关系的两个操作的执...原创 2020-04-08 19:01:47 · 449 阅读 · 0 评论 -
java任务定时调度
任务定时调度就是在以后某个时间或一次或多次执行事先定好的任务。java中使用任务调度的类是Timer类,先看看Timer的方法返回值类型方法和描述voidcancel() 终止此计时器,丢弃任何当前计划的任务voidschedule(TimerTask task, Date time) 在指定的时间安排指定的任务执行。voidschedule(Tim...原创 2020-04-08 17:43:57 · 226 阅读 · 0 评论 -
java多线程(三)并发与死锁
学过操作系统或数据库的小伙伴都知道,当有多个线程同时对一个资源操作时,若没有保护措施就会不安全。例如数据库中有一个值,现在有两个线程,一个读取,一个修改,若读取在前,修改在后,则读取到的是一个旧的值。文章目录并发同步与线程的安全性Synchronized保证java线程安全性死锁的产生与解决并发同步与线程的安全性并发是指多个线程同时操作同一个资源,若控制不当我们就称为线程不安全。下...原创 2020-04-06 13:53:25 · 141 阅读 · 0 评论 -
java多线程(二)线程状态与操作线程的常用方法
文章目录一 . 线程的基本状态二 . 线程状态图三 . 在Java代码中的线程状态四 . 操作线程的常用方法五 . 常用方法的使用一 . 线程的基本状态新生状态:线程开启就绪状态:具有了除CPU以外的所有资源运行状态:CPU调度,开始真正执行阻塞状态:因为某些原因放弃CPU,等待再次调度死亡状态:正常结束或者被强制结束二 . 线程状态图[外链图片转存失败,源站可能有防盗链机制...原创 2020-04-04 22:40:07 · 125 阅读 · 0 评论 -
lambda表达式
lambda表达式就是JDK1.8以后,的一种简化匿名内部类的方式。简单易学,老少皆宜。注意lambda表达式只能在接口中只有一种方法的前提下使用。interface A{ void out(int a);}public class testLambda { public static void main(String[] args) { //局部内部类...原创 2020-04-04 20:03:04 · 116 阅读 · 0 评论 -
java多线程(一)创建线程的三种方法及比较
文章目录Java创建线程有三种方法一 . 继承Thead类二 . 实现Runnable接口三 . 实现Callable接口四 . 三种方的法比较Java创建线程有三种方法继承Thread类实现Runnable接口实现Callable接口一 . 继承Thead类继承Thea的类后我们要重写一个run()方法,这个run()方法里面的内容就是开辟新线程要执行的内容。注意,虽然新...原创 2020-04-04 18:09:33 · 120 阅读 · 0 评论