随笔分类 - JavaNotes
摘要:在开发中经常用到单例模式,单例模式也算是设计模式中最容易理解,也是最容易手写代码的模式,所以也常作为面试题来考。所以想总结一下单例模式的理论知识,方便同学们面试使用。 单例模式实现的方式只有两种类型,一种是饿汉式(类加载时就初始化)、一种是懒汉式(类加载时不初始化)。饿汉式没什么可讲究的因为它既简单
阅读全文
摘要:设计模式(Design pattern)在软件行业一直都扮演着很重要的角色。最近感觉自己对设计模式的知识有些遗忘了,虽然以前也看了很多,但是坦白说,其实并没有怎么理解。基本还是为了应付面试。然后,在工作当中,也很少用到那么多的设计模式,大部分工作都是涉及单例模式,工厂模式或者装饰模式。慢慢地,就觉得
阅读全文
摘要:在调用Java删除文件时,我们常常会调用file.delete();,但其实这个delete只能删除单个文件还有空文件夹,但是如果文件夹不是空,这个方法就无法删除文件了。所以要删除有内容的文件夹,就必须自己写个方法,如下: public static void deleteFile(File ...
阅读全文
摘要:1、final, finally, finalize的区别 final—是修饰符,可以修饰变量、方法和类。 final类不能再派生出新的子类即不可当父类; final变量必须在声明时给定初值或在构造方法中赋值,在以后的引用中只能读取,不可修改。 final方法不能重载。 fin...
阅读全文
摘要:首先,乐观锁(optimistic locking)与悲观锁(pessimistic locking)基本是针对数据处理来说,也就是跟数据库有关的术语,目的是为了解决并发处理时所遇到的相关性能问题,以避免数据丢失更新。 悲观锁(pessimistic locking):指的是对数据被外界(包括...
阅读全文
摘要:volatile:只保证共享资源的可见性的,任何修改都写在主存,所有线程马上就能看到,适用于新值不依赖于旧值的情形。synchronized:保证可操作的原子性一致性和可见性。volatile和synchronized的区别: volatile仅仅使变量在值发生改变时能尽快地让其他线程知道,并不能...
阅读全文
摘要:一、内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允...
阅读全文
摘要:一.static关键字的用途 可以在没有创建对象的情况下来进行(方法/变量)调用。也就是,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 1,static修饰方法 static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以...
阅读全文
摘要:1,Executor、ExecutorService和ScheduledExecutorService,它们都是接口,它们的关系是ScheduledExecutorService继承ExecutorService而ExecutorService 又继承Executor。这些只要点开源码就能看得到...
阅读全文
摘要:一,定义 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发...
阅读全文
摘要:ConcurrentHashMap提供了和Hashtable以及SynchronizedMap中所不同的锁机制。1,在并发方面, ConcurrentHashMap提供了好得多的并发性。多个读操作几乎总可以并发地执行,同时进行的读和写操作通常也能并发地执行,而同时进行的写操作仍然可以不时地并发进行(...
阅读全文
摘要:首先一点就是Thread.sleep(long millis)方法是Thread类的静态方法,其他三个wait(), notify()和notifyAll()都是Object类的方法。 sleep(long millis)方法的调用能使当前线程暂定执行指定时间(但是并没有释放任何锁),然后再继...
阅读全文
摘要:关于这个问题,先了解一下Thread类方法中被废弃的那些方法。suspend(), resume(),stop()/stop(Throwable obj),destroy()首先,stop(Throwable obj)和destroy()方法在最新的Java中直接就不支持了,没必要去看了。我们只需瞧...
阅读全文
摘要:Java创建线程有两种方法,一种是继承Thread,另一种实现Runnable或Callable接口。一,继承Threadpublic class APP { public static void main(String[] args) { Thread thread = new...
阅读全文
摘要:给一个APK做签名,选择新建一个key并填写相关信息,但在Finish时,keytool报出了一个错误:keytool error: java.io.IOException: Incorrect AVA format这是因为在创建key的时候,organization和organizational
阅读全文
摘要:看了很多关于阐述JAVA传参到底是值传递还是引用的问题,有些说得很肤浅让人感觉似懂非懂的感觉,但是好像又能解决一些问题,然后就止步了。还有一些则是,讲得很深奥,看着好像很有道理的样子,但是其实还是没怎么懂。 今天再次碰到这个问题时,自己再反思了一下,个人对于一个问题的解决思路,突然觉得大部分人...
阅读全文
摘要:public class MainClass { public static void main(String[] args) { ThreadGroup group = Thread.currentThread().getThreadGroup(); ThreadGroup topGroup = group; // 遍历线程组树,获取根...
阅读全文
摘要:eclipse 在导入maven project后,pom.xml有可能出现这种错误。这里update maven project解决了;右键点击Maven项目->Maven->Update project,在弹出的窗口下方把Force Update of Snapshots/Releases勾上,...
阅读全文
摘要:刚刚新建完Maven项目,一般都会报这个错误,原因是没有默认添加需要的javax.servelet的jar包,所以打开pom.xml文件添加如下dependency即可: javax.servlet servlet-api 2.5
阅读全文
摘要:Java去除掉HTML里面所有标签,主要就两种,要么用开源的jar处理,要么就自己写正则表达式。自己写的话,可能处理不全一些自定义的标签。企业应用基本都是能找开源就找开源,实在不行才自己写…… 1,开源的,我目前找到的就是Jsoup包: 2,自己写的话,百度一搜一大堆,这里只是借用一下:
阅读全文

浙公网安备 33010602011771号