-
4.java并发编程艺术-java并发编程基础
所属栏目:[Java] 日期:2020-12-15 热度:103
java从诞生开始就明智的选择了内置对多线程的支持,这使得java语言相比同一时期的其他语言具有明显的优势。线程作为操作系统调度的最小单元,多个线程能够同时执行,这将显著提升程序的性能,在多核环境中表现的更加明显。但是,过多的创建线程和对线程的不[详细]
-
日期处理工具类
所属栏目:[Java] 日期:2020-12-15 热度:94
import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.* ; /** * 类名:DateUtil br / * p * 功能: * 创建时间:2015年12月4日 下午4:44:11 br / * @version 2015年12月4日 */ public c[详细]
-
synchronized和ReentrantLock有什么区别?有人说synchronized最
所属栏目:[Java] 日期:2020-12-15 热度:197
典型回答 synchronized是java内建的同步机制,所以有人称其为instrinisc Locking(固有锁),它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。 在java5以前,synchronized是仅有的同步手段,在代码中,syn[详细]
-
LinkedList集合
所属栏目:[Java] 日期:2020-12-15 热度:123
? LinkedList集合 的存储结构为链表,添加、删除快,查找慢。 LinkedList和ArrayList的父类都是List接口,因此他们有很多相同的方法。 创建Person类: public class Person { private String name; private int age; public String getName() { return name;[详细]
-
认识JVM的内存分配
所属栏目:[Java] 日期:2020-12-15 热度:69
当我们在JVM中运行一段程序代码,JVM初始运行的时候都会分配好 Method Area(方法区)和Heap(堆) ,而JVM每遇到一个线程,就为其分配一个Program Counter Register(程序计数器),VM Stack(虚拟机栈)和Native Method Stack (本地方法栈),当线程终止时[详细]
-
Java的三种工厂模式
所属栏目:[Java] 日期:2020-12-15 热度:55
一、简单工厂模式 简单工厂的定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类 实现汽车接口 // 产品接口 // 汽车需要满足一定的标准 public interface Car { // 规定汽车的品牌 String getN[详细]
-
查看java程序中对象占用空间大小
所属栏目:[Java] 日期:2020-12-15 热度:113
需要引入的jar包: dependency groupId com.carrotsearch / groupId artifactId java-sizeof / artifactId version 0.0.5 / version / dependency 在代码中使用如下即可: System.out.println(RamUsageEstimator.sizeOf(object) + "B");[详细]
-
自己随便写点东西
所属栏目:[Java] 日期:2020-12-15 热度:154
有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有[详细]
-
java判断文件真实类型
所属栏目:[Java] 日期:2020-12-15 热度:90
?代码如下: import java.io.FileInputStream; import java.io.IOException; import java.util.HashMap; /** * p * 类描述:获取和判断文件头信息 * |--文件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。 * |--头文件作为一种包含功能函[详细]
-
java 多线程-死锁的产生以及解决方案
所属栏目:[Java] 日期:2020-12-15 热度:127
死锁: 过多的同步造成相互不释放资源,从而过多地等待,一般发生于 同步中持有多个对象的锁 snchronized锁住对象同时,另一个snchronized就不能锁该对象 避免在一个代码块中,同时持有多个对象的锁 死锁: public class tt {public static void main(String[详细]
-
java多线程
所属栏目:[Java] 日期:2020-12-15 热度:84
多线程的实现 可以通过继承Tread类和实现Runnable接口来实现多线程,通过卖票实现多线程代码如下: package Thread;// 继承Thread类class ConductorThread extends Thread{ private int ticketNum = 5; @Override public void run() { for(int i=5;i0;i--) {[详细]
-
Re: Java中异常处理流程
所属栏目:[Java] 日期:2020-12-15 热度:129
现有如下方法: 1 public int getNum() { 2 try { 3 int a = 1/0 ; 4 return 1 ; 5 } catch (Exception e){ 6 return 2 ; 7 } finally { 8 return 3 ; 9 } 10 } 代码在走到第 3 行的时候遇到了一个 MathException,这时第四行的代码就不会执行了,代码直接跳[详细]
-
Java中深浅拷贝
所属栏目:[Java] 日期:2020-12-15 热度:54
一,浅拷贝 ①对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝得到的数据。 ②对于数据类型是引用数据类型[详细]
-
008、JAVA_缩小数据类型
所属栏目:[Java] 日期:2020-12-15 热度:90
一、效果如下 public class MyClass { public static void main(String []args) { long num = 1000 ; // 数据类型转换,大转[详细]
-
hdu 3033 I love sneakers!
所属栏目:[Java] 日期:2020-12-15 热度:55
I love sneakers! Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8105????Accepted Submission(s): 3216 Problem Description After months of hard working,Iserlohn finally wins awesome a[详细]
-
双重检查锁单例模式为什么要用volatile关键字?
所属栏目:[Java] 日期:2020-12-15 热度:171
前言 从Java内存模型出发,结合并发编程中的原子性、可见性、有序性三个角度分析volatile所起的作用,并从汇编角度大致说了volatile的原理,说明了该关键字的应用场景;在这补充一点,分析下volatile是怎么在单例模式中避免双检锁出现的问题的。 并发编程的3[详细]
-
《java基础知识》Java super关键字
所属栏目:[Java] 日期:2020-12-15 热度:190
super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。 super也有三种用法: 1.普通的直接引用 与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。 2.子类中的成员变量或方法与[详细]
-
Java中获取刚插入数据库中的数据Id(主键,自动增长)
所属栏目:[Java] 日期:2020-12-15 热度:102
public int insert(String cName,String ebrand,String cGender) {String sql = "insert into Cloth (cname,ebrand,cgender) values(?,?,?) ";Connection conn = DruidUtil.getConn();PreparedStatement prep = null;ResultSet rs = null ;try {prep = conn.[详细]
-
java 多线程-生产者消费者模式-管程法
所属栏目:[Java] 日期:2020-12-15 热度:125
生产者消费者模式管程法 通过容器中介,将数据放入和取出 wait()导致当前线程等待,直到另一个线程调用该对象的notify()或notyfyAll()方法 notify()唤醒正在等待对象监视器的单个线程,notifyAll()唤醒正在等待对象监视器的所有线程 public class tuble {publ[详细]
-
2019 Multi-University Training Contest 6
所属栏目:[Java] 日期:2020-12-15 热度:70
HDU 6638-Snowy Smile Time Limit: 4000/4000 MS (Java/Others)????Memory Limit: 524288/524288 K? Problem Description There are? n ?pirate chests buried in Byteland,labeled by? 1 , 2 , … , n . The? i -th chest‘s location is? ( x i , y i ) ,a[详细]
-
打开一个文本文件,每次读取一行内容,将每一行作为String读入,并
所属栏目:[Java] 日期:2020-12-15 热度:91
import java.io.*;import java.util.LinkedList;import static util.Print.print;public class LoadTest { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new FileReader("src/LoadTest.java")); St[详细]
-
20 个案例教你在 Java 8 中如何处理日期和时间?
所属栏目:[Java] 日期:2020-12-15 热度:113
前言 前面一篇文章写了《SimpleDateFormat 如何安全的使用?》,里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Java 8 中的处理时间/日期默认就线程安全的 DateTimeFormatter 类。那么 Java 8 中该怎么样处理生活中[详细]
-
JAVA 基础编程练习题19 【程序 19 打印菱形图案】
所属栏目:[Java] 日期:2020-12-15 热度:51
? 19 【程序 19 打印菱形图案】 题目:打印出如下图案(菱形) ? ? ? * ? ? *** ? ***** ******* ? ***** ? ? *** ? ? ? * 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for 循环,第一层 控制行,第二层控制列。 ? packa[详细]
-
java13关键字
所属栏目:[Java] 日期:2020-12-15 热度:104
this 关键字 this调用构造方法有参构造this(参数列表),无参构造this(); this必须写在方法中的第一行 当成员变量和局部变量重名时可以在成员变量名前面加上this.来区别成员变量和局部变量 ? ? super关键字 在创建子类对象时,父类的构造方法会先执行,因为子[详细]
-
Java线程--死锁现象
所属栏目:[Java] 日期:2020-12-15 热度:192
死锁现象 ?? java同步机制解决了线程安全问题,但是也同时引发了死锁现象 死锁现象出现的根本原因 ??? 1.存在两个或者两个以上的线程. ??? 2.存在两个或者两个以上共享资源. 死锁问题的解决方案 ?? 没有方案,只能尽量避免发生而已. ? 实例: package jd1908[详细]