
Java基础
wotu__
这个作者很懒,什么都没留下…
展开
-
Java字符串-判断一个字符串中是否存在重复字符
方法1:利用Set集合来实现将字符串中的每个字符依次存入Set集合中,Set集合会自动剔除重复元素。判断Set集合的元素个数是否等于字符串的长度,若相等,则字符串中没有重复的字符。否则,字符串中存在重复的字符。Code:public static boolean isunique(String s) { Set<Character> set = new Hash...原创 2018-12-07 21:09:43 · 11586 阅读 · 0 评论 -
编写一个简单的死锁
参考博客:https://www.cnblogs.com/mudao/p/5867107.htmlpublic class Dead_Lock1 { public static String obj1 = "obj1"; public static String obj2 = "obj2"; public static void main(String[] arg...转载 2019-05-16 17:30:15 · 991 阅读 · 0 评论 -
【转】Java中的String,StringBuilder,StringBuffer三者的区别
转自:https://www.cnblogs.com/su-feng/p/6659064.html 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而Str...转载 2019-05-16 15:50:07 · 180 阅读 · 0 评论 -
Java 单例模式的几种写法
所谓单例,就是确保一个类只有一个实例,并提供该实例的全局访问点。使用一个私有构造函数、一个私有静态变量以及一个公有静态函数(返回该静态变量)来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。1. 懒汉式(线程不安全, 不可用)public class Singleton_exam { private static S...转载 2019-05-09 22:22:37 · 216 阅读 · 0 评论 -
关于 Java 参数传递问题 ( 值传递与引用传递 )
1.基本类型和引用类型在内存中的保存Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基本类型和引用类型。基本类型的变量保存原始值,即它代表的值就是数值本身;而引用类型的变量保存引用值,"引用值"指向内存空间的地址,代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char...原创 2019-05-14 17:32:11 · 308 阅读 · 0 评论 -
Java之内存模型
参考博客:https://www.cnblogs.com/nexiyi/p/java_memory_model_and_thread.htmlhttps://www.cnblogs.com/dolphin0520/p/3920373.htmlhttps://www.cnblogs.com/chengxiao/p/6528109.htmlhttps://cyc2018.github....转载 2019-04-29 18:37:26 · 228 阅读 · 0 评论 -
Java知识之IO
一、Java中的IO的分类磁盘的操作: File 字节的操作:InputStream 和 OutputStream 字符的操作:Reader 和 Writer 对象的操作:Serializable 网络的操作:Socket,如服务端通过输入流读取客户端发送的请求信息 和客户端通过输出流向服务端请求信息。 非阻塞IO:NIOJava中IO流的类结构图:二、磁盘的操作Fi...转载 2019-04-12 21:27:15 · 177 阅读 · 0 评论 -
Java之类的初始化时机
一、主动引用虚拟机规范中并没有强制约束何时进行类加载,但是规定了有且只有下列5种情况必须比类进行初始化。1. 遇到new、getstatic、putstatic、invokestatic这4条机器码指令时,若类没有进行过初始化,则必须先触发其初始化。最常见的场景:使用new实例化对象;读取或设置一个类的静态字段(被final修饰、已在编译期把结果放入常量池的静态字段除外)。;调用一个类...转载 2019-04-08 22:17:07 · 221 阅读 · 0 评论 -
JVM之类加载机制
一、类的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,整个生命周期包括7个阶段:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。二、类的加载过程1. 加载加载过程要完成以下三件事情: * ...转载 2019-04-08 21:42:37 · 133 阅读 · 0 评论 -
Java并发之CountDownLatch、CyclicBarrier、Semaphore (AQS)
一、CountDownLatchCountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。CountDownLatch用来控制一个线程等待多个线程。内部维护了一个cnt,每次调用countDown()方法就会让该计数器的值减1。当计数器的值减少到0的时候,就会唤醒那些因为调用了await()方法而等待的线程。CountDownLatch...转载 2019-04-07 15:47:12 · 234 阅读 · 0 评论 -
Java之BlockingQueue
一、java.util.concurrent.BlockingQueue接口中阻塞队列的实现FIFO队列:LinkedBlockingQueue、ArrayBlockingQueue(固定长度,实例化时需指定长度)优先队列:PriorityBlockingQueue提供了阻塞的tack() 和 put() 方法:如果队列为空,take() 将被阻塞,直到队列中有内容;如果队列已满,pu...转载 2019-04-06 19:01:21 · 316 阅读 · 0 评论 -
Java之wait、await、sleep的区别和联系
一、wait() notify() notifyAll()调用wait()使得线程等待某个条件满足,线程在等待时会被挂起,当其他线程运行时使得这个条件满足时,其他线程会调用notify()或者notifyAll()来唤醒该挂起的线程。wait()挂起期间,线程会释放锁。假若线程没有释放锁,那么其他线程就无法进入对象的同步方法或同步控制块中,也就无法执行notify() 和 notifyAl...原创 2019-04-06 17:22:18 · 16818 阅读 · 3 评论 -
Java之LinkedHashMap
LinkedHashMappublic class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>一、关于LinkedHashMapLinkedHashMap继承自HashMap,具有和HashMap一样的快速查找特性。对比与HashMap,LinkedHashMap内部维护...转载 2019-04-05 23:13:17 · 198 阅读 · 0 评论 -
String toString() String.valueOf()的区别
1.(String)标准类型的转换,将Object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如...转载 2019-03-02 21:02:30 · 190 阅读 · 0 评论 -
Java数组复制的几种方法
1. for循环代码灵活,效率较低2.System.arraycopy()native方法,即原生态方法。效率较高。3.Arrays.copyOf()基于System.arraycopy(),效率略低于System.arraycopy()4.Object.clone()native方法,但是返回为Object类型,赋值时发生强制转化,效率不如前面几种方法 使用实...转载 2019-02-27 16:32:37 · 296 阅读 · 0 评论 -
Java之 Condition 以及使用 Condition、PriorityQueue 实现 生产-消费者模型
一、Condition的介绍Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition的await()、signal()这种方式实现线程间协作更加安全和高效。因此通常来说比较推荐使用Condition,阻塞队列实际上是使用了Condition来模拟线...原创 2019-05-16 19:52:33 · 306 阅读 · 0 评论