随笔分类 -  java

摘要:上篇介绍了用synchronized修饰static方式来实现“Class 锁”,今天要介绍另一种实现方式,synchronized(class)代码块,写法不一样但是作用是一样的。下面我附上一段代码来看一下synchronized(class)代码块的基本用法,如下: 运行结果如下:synchro 阅读全文
posted @ 2016-07-12 16:18 陈家小桐桐 阅读(195) 评论(0) 推荐(0)
摘要:前面几章都是在说synchronized用于对象锁,无论是修饰方法也好修饰代码块也好,然而关键字synchronized还可以应用到static静态方法上,如果这样写,那就是对当前的*.java文件所对应的Class类进行加锁。那么接下来就来说说synchronized修饰static的最基本用法和 阅读全文
posted @ 2016-07-12 14:28 陈家小桐桐 阅读(174) 评论(0) 推荐(0)
摘要:在多线程访问同一个对象中的不同的synchronized方法或synchronized代码块的前提下,也就是“对象监控器”为同一个对象的时候,也就是synchronized的锁为同一把锁的时候,调用的效果就是:当前正在执行的synchronized方法或synchronized代码块的运行结果是同步 阅读全文
posted @ 2016-07-11 16:51 陈家小桐桐 阅读(222) 评论(0) 推荐(0)
摘要:为了解决“非线程安全”带来的问题,上一节中使用的办法是用关键字synchronized修饰多个线程可能同时访问到的方法,但是这样写是存在一定的弊端的,比如线程A调用一个用synchronized修饰的同步方法,这个方法要执行很长时间,那么其它的线程必须无条件的等线程A执行完释放掉对象锁,当然前提是其 阅读全文
posted @ 2016-07-08 17:24 陈家小桐桐 阅读(403) 评论(0) 推荐(0)
摘要:在上节中已经说过了“非线程安全”是如何出现的,链接如下:http://www.cnblogs.com/chentong/p/5650137.html,那么怎么解决“非线程安全”问题呢,只需要在两个线程都需要同时访问的方法前面加上synchronized关键字即可,我只贴出需要修改的这个方法的代码,具 阅读全文
posted @ 2016-07-08 09:50 陈家小桐桐 阅读(321) 评论(0) 推荐(0)
摘要:在Java多线程中我会重点总结五个如下的技术点: 1、非线程安全是如何出现的 2、synchronized对象监视器为Objec时的使用 3、synchronized对象监视器为Class时的使用 4、关键字volatile的主要作用 今天我先说一说第一个问题,非线程安全是如何出现的。“非线程安全” 阅读全文
posted @ 2016-07-07 14:58 陈家小桐桐 阅读(1091) 评论(0) 推荐(0)
摘要:yiled()方法的作用是放弃当前CPU的资源,将资源让给其它线程,但放弃的时间不确定,有可能刚刚放弃,又马上获得了CPU时间片。下面看一个小例子,看一下具体效果。 public static void main(String[] args) throws InterruptedException { MyThread t = new MyThread(); t.start(... 阅读全文
posted @ 2016-06-27 13:52 陈家小桐桐 阅读(1487) 评论(0) 推荐(0)
摘要:运行结果我值截取了最后一段,控制台上正好输出到5000,说明调用interrupt方法并没有停止线程,运行结果如下: 那么怎么才能停止线程呢?下面我回来介绍。 输出结果如下: 下面来看一下控制台上的输出结果: 来分析一下结果,"run end"这句话没有输出,说明子线程里的sleep下面的内容再也不 阅读全文
posted @ 2016-06-27 13:28 陈家小桐桐 阅读(449) 评论(0) 推荐(0)
摘要:很多求职者在面试过程中都被问到了单例模式,最常见的问题,比如,每种单例模式的区别是什么?哪些模式是线程安全的?你们项目里用的哪种单例模式?原来没有注意这个问题,回来赶紧打开项目查看了一下代码,才发现我们的项目用到了枚举。有的面试官还会让你手写一种单例模式,我建议大家就写自己项目中用到的那种。下面我就 阅读全文
posted @ 2016-06-21 17:30 陈家小桐桐 阅读(236) 评论(0) 推荐(0)
摘要:Java语言对线程的支持主要体现在Thread类和Runnable接口,Thread和Runnable里都有一个共同的方法run(),run()方法里的内容为线程里要执行的代码。 下面是Thread类里常用的方法: 这里join方法有几个重载的形式,没有参数的指明了其它的线程一定要等到当前执行的线程 阅读全文
posted @ 2016-04-22 10:18 陈家小桐桐 阅读(224) 评论(0) 推荐(0)
摘要:大家平时都string都不是很在意,但是每当面试碰到String的时候在“==”和equals之间就乱了,下面我来说一说String,也许不够全面,请大家多多指教,希望会帮到处于蒙圈状态的人们。 一、Java中字符串的不变性 String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新 阅读全文
posted @ 2016-04-21 16:38 陈家小桐桐 阅读(683) 评论(0) 推荐(0)
摘要:很多人工作的过程中都会碰到ListView下拉刷新和分页加载,然后大多数公司都已经把框架写好了,大家直接用就可以了,有些人一直对这个事情处于迷茫状态,为了让大家对上拉刷新和分页加载有一个比较全面的认识,我写了两个Dome,分别是ListView的下拉刷新和分页加载。在这里我就不付上我的源码了,我把我 阅读全文
posted @ 2016-04-21 15:31 陈家小桐桐 阅读(142) 评论(0) 推荐(0)
摘要:有些初学者肯定很糊涂,不知道为什么要出现包装类,原因很简单,因为基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。下边是基本数据类型和包装类之间的 阅读全文
posted @ 2016-04-21 14:07 陈家小桐桐 阅读(195) 评论(0) 推荐(0)
摘要:一、异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二、异常分析 所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类。Error指系统错误,比如内存溢出或者虚拟机异常,Error出现程序就彻底崩溃了,Exception一般是编码、环境出现问题。Ex 阅读全文
posted @ 2016-04-15 15:43 陈家小桐桐 阅读(687) 评论(1) 推荐(0)