随笔分类 - Java
java编程语言学习
摘要:1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达
阅读全文
摘要:Java多线程中锁的理解与使用 1.简介 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等 ) 。 2.Java锁的种类 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁
阅读全文
摘要:一,TreeSet 案例:使用TreeSet集合存储字符串元素,并遍历 public class Demo5 { public static void main(String[] args) { TreeSet ts = new TreeSet(); ts.add("ccc"); ts.add("a
阅读全文
摘要:JAVA设计模式总结之23种设计模式 上一篇总结了设计模式的六大原则《JAVA设计模式总结之六大设计原则》,这一篇,正式进入到介绍23种设计模式的归纳总结。 一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是
阅读全文
摘要:Semaphore的使用 Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。 Semaphore的主要方法摘要: void acquire():从此信号量获取一个许可
阅读全文
摘要:一、创建两个程序MyThread1.java和MyThread2.java public class MyThread1 extends Thread { private Object lock; public MyThread1(Object lock) { super(); this.lock
阅读全文
摘要:Java 多线程(七) 线程间的通信——wait及notify方法 线程间的相互作用 线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。 Object类中相关的方法有两个notify方法和三个wait方法: 因为wait和notify方法定义在Object类中,因此会被所有的类所继承。
阅读全文
摘要:wait/notify机制: import java.util.ArrayList; import java.util.List; public class MyList { private static List<String> list = new ArrayList<String>(); pu
阅读全文
摘要:一、通过synchronized执行一半同步,一半异步 1.新建一个Task.java public class Task { public void doLongTimeTask(){ for(int i=0;i<100;i++){ System.out.println("nosynchroniz
阅读全文
摘要:Java并发编程:Synchronized及其实现原理 Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间的协作(wait/notify/sl
阅读全文
摘要:JDK动态代理实现原理 动态代理机制 通过实现 InvocationHandler 接口创建自己的调用处理器 通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类 通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型 通过构造函数创
阅读全文
摘要:首先创建一个类Node,定义二叉树Node.java public class Node { //节点的定义 private int data; private Node leftNode; private Node rightNode; public Node(int data, Node lef
阅读全文
摘要:在创建Maven项目时,出现报错:No goals have been specified for this build pom.xml文件加入 <build><defaultGoal>compile</defaultGoal></build>即可,这是由于在Maven在编译时,不能找到编译的包,当
阅读全文

浙公网安备 33010602011771号