java
文章平均质量分 62
克念
这个作者很懒,什么都没留下…
展开
-
java监听器模式
最近正在写一个小练习,java原创 2014-07-16 23:24:39 · 907 阅读 · 0 评论 -
ReentrantLock 解析 - 不公平锁 -Chapter1
可重入锁synchronized 关键字其实就是可重入锁。那什么是可重入锁呢,简单举个栗子就清楚了:假如一个对象A,有两个方法m1和m2,下面是代码class A { synchronized void m1(){ ... m2(); ... } synchronized void m2()...原创 2018-06-15 18:08:31 · 194 阅读 · 0 评论 -
Java 线程 Interrupt() 方法解析
Java中我们可以通过一些手段关闭一个线程。关闭一个线程有两种方式:一种是强制关闭,比如说是exit退出当前线程,stop()方法强制关闭一个线程,Interrupt方法给一个线程打上标识,如果遇到阻塞的情况下抛出InterruptedException 结束线程。其中使用stop方法的方式强制关闭线程的方式已经不推荐了,因为可能导致一些难以预料的后果,并且这些方法在新版本的Java API中已经...原创 2018-06-22 11:17:36 · 694 阅读 · 0 评论 -
Java中通过反射为构造函数为private的类创建对象
在Java中,一般情况下会使用new关键字来调用类的有参或者无参构造函数来建立一个对象,也可以通过Class.newInstance()方法来调用类的无参构造函数来建立一个对象。而如果一个类的构造函数为private 类型,不是public类型的话,那么new关键字和Class.newInstance()方法都将没有用武之地。这也是为什么我们通过把构造函数设置为private类型来实现单例模式的原...原创 2018-05-16 10:15:18 · 4092 阅读 · 0 评论 -
Java Thread.yield方法和Object.wait方法的区别
yield方法和wait方法都会导致当前线程的停止。但是它们是有区别的。 首先,yield方法是Thread对象提供的方法,wait是Object对象提供的方法可以看到线程一共有下面的几种状态。 1. 新建(new):新创建了一个线程对象。2. 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调...原创 2018-05-15 10:30:10 · 1289 阅读 · 0 评论 -
Java 线程安全的单例模式
第一种,通过synchronized 关键字双重非空判断public class ThreadSafeSingleton { //使用volatile关键字,可以保证当ThreadSafeSingleton对象在第一个线程中创建完毕的时候,其它的线程可以立马感知到 private static volatile ThreadSafeSingleton threadSafeS...原创 2018-05-14 22:35:33 · 1158 阅读 · 0 评论 -
Java 多线程简单死锁实现
什么情况下才会出现死锁呢?一种比较典型的情况是: 有两个线程,就叫做thread1 和thread2,这两个线程的执行过程中都需要获取资源A和资源B的锁。当出现这种情况的时候,就会导致两个线程死锁: Thread1访问A资源,然后准备访问B资源,Thread2先访问B资源,然后准备访问A资源。当thread1和thread2同时执行的时候,就可能导致死锁。因为可能thread1...原创 2018-05-11 16:32:32 · 723 阅读 · 0 评论 -
NetBeans 中classpath没法找到资源文件
有个非常简单的需求,就是写一个Java类,并且实现读取properties资源文件。 加载资源的方式为使用了java.util.ResourceBundle 这个类。 为了测试方便,一开始把properties文件和Java文件放在了同一个目录下面。看下图: 资源文件和类名完全一样。 接下来贴代码: 直接把ResourceBundle对象定义为一个静态变量,在...原创 2018-04-03 10:53:20 · 1471 阅读 · 0 评论 -
java泛型小结
我自己写了一个Map类,用来模拟真正的工作Map,来分析java的泛型工作机制。类代码如下:public class SimpleMap<K, V> { private Object ks[] = new Object[10]; private Object vs[] = new Object[10]; @SuppressWarnings("unchecked") pub原创 2016-01-11 10:21:03 · 475 阅读 · 0 评论 -
简单spring mvc项目搭建
1. 通过eclipse生成项目 新建一个maven project,需要注意的是在选择Archetype的时候,选择:maven-archetype-webapp。2.配置pom引用 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>原创 2016-01-11 10:07:50 · 394 阅读 · 0 评论 -
java 执行jar包引用别的jar包方式
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFEST.MF里面添加如下一句话:转载 2016-01-27 13:43:41 · 1104 阅读 · 0 评论 -
JSP 常用字符串处理表达式
fn:contains 判断字符串是否包含另外一个字符串 fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) fn:endsWith 判断字符串是否以另外字符串结束 fn:escapeXml 把一些字符转成XML表示,例如 fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")}fn:join原创 2015-11-23 15:49:57 · 497 阅读 · 0 评论 -
ibaits 数据库批量更新:批处理和事物
数据库进行批量更新的时候,原创 2014-08-17 16:43:47 · 793 阅读 · 0 评论 -
ibatis 学习之一 环境搭建,简单小demo练习
最近准备好好学习下ibatis,同时把学习的点滴记录下来,这样子以后可以温故而知新,还可以增加自己的记忆原创 2014-08-05 21:01:31 · 426 阅读 · 0 评论 -
spark本地开发环境搭建(maven + scala + java)
开发工具和软件版本信息 IDEA 2019.2 JAVA 1.8 Scala 2.11.12 Spark 2.4.3 Hadoop 2.7.7 Windows ...原创 2019-06-23 13:11:18 · 1533 阅读 · 1 评论