![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
zhoujing_0424
这个作者很懒,什么都没留下…
展开
-
Java基础:集合
Java平台提供了一个全新的集合框架,框架的核心为Collection、List(列表)、Set(集合)和Map(映射)。集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户使用,Java平台还提供了Collections和Arrays工具类原创 2015-11-03 17:33:22 · 345 阅读 · 0 评论 -
ProcessBuilder
1. 简介ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。 每个 ProcessBuilder 实例管理一个进程属性集。它的start() 方法利用这些属性创建一个新的 Process 实例。st...原创 2018-04-12 20:51:02 · 10556 阅读 · 0 评论 -
JConsole、VisualVM检测死锁
1.死锁示例:package com.lesson1;public class TestDeadLock implements Runnable{ /** * @param args */ public static void main(String[] args) { TestDeadLock lock1=new TestDeadLock();原创 2016-06-11 17:31:24 · 851 阅读 · 0 评论 -
Java 删除ArrayList中指定元素
ArrayList是最常用的一种java集合,在开发中我们常常需要从ArrayList中删除特定元素。有几种常用的方法:最朴实的方法,使用下标的方式高级循环的方式迭代器方式1.最朴实的方法,使用下标的方式ArrayList al = new ArrayList(); al.add("a"); al.add("b"); for (int i = 0; i < al.size(); i++原创 2016-06-11 17:00:47 · 3886 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模转载 2016-03-10 13:02:30 · 291 阅读 · 0 评论 -
Java8 十大新特性
本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:复制代码代码如下:interface Formula { double calculate(int a); defaul转载 2016-03-07 20:56:32 · 316 阅读 · 0 评论 -
虚拟机类加载机制
一、类加载的时机1. 类加载的 生命周期 :加载(Loading)-->验证(Verification)-->准备(Preparation)-->解析(Resolution)-->初始化(Initialization)-->使用(Using)-->卸载(Unloading)2. 加载:这由虚拟机自行决定。3. 初始化阶段:a) 遇到new、getstatic、put原创 2016-03-16 22:06:41 · 275 阅读 · 0 评论 -
Java基础:多线程之线程池
1.线程池的概念与Executors类的应用 应用需求:如果访问服务器的客户端很多,那么服务器要不断的创建和销毁线程,这将严重的影响服务器的性能 解决方法:首先创建一些线程,它们的集合称为线程池,当服务器接受到一个客户请求后,就从线程池中取出一个空闲的线程为之服务,服务完后不关闭该线程,而是将线程还回到线程池中。原创 2016-01-15 10:09:31 · 309 阅读 · 0 评论 -
Java基础:多线程之面试问题
1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,卖票系统就可以这么做。 2.如果每个线程执行的代码不同,这是需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享:原创 2016-01-12 11:31:14 · 284 阅读 · 0 评论 -
Java基础:多线程之线程范围内的数据共享ThreadLocal
问题:实现线程范围内的数据共享,即每个线程只能访问它自己的数据,不能访问其他线程的数据。具体逻辑如下图所示: 1.方法一:使用Map<线程Thread,数据类型DataType> 使用Map<线程Thread,数据类型DataType>,其中key为Thread,即线程;value为DataType,即要线程范围内共享的数据的数据类型。这样就可以通过线程来获取其相应的数据。原创 2016-01-12 11:04:14 · 411 阅读 · 0 评论 -
Java基础:多线程下的单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。但在多线程环境下,就可能会产生问题,并不一定能保证只有一个实例。原创 2015-12-19 17:28:01 · 307 阅读 · 0 评论 -
Java基础:定时器Timer
定时器Timer、TimerTask原创 2016-01-07 20:56:44 · 301 阅读 · 0 评论 -
Java基础:多线程之线程创建的两种方式
创建线程有两种方式: 1. 继承Thread类,覆写run方法; 2. 实现Runnable接口,将任务代码封装到run方法中。原创 2016-01-06 20:27:39 · 432 阅读 · 0 评论 -
java基础:多线程之生产者消费者问题
多生产多消费就需要使用while和notifyAll,while保证被唤醒的线程继续判断标志位,notifyAll把所有线程都唤醒,保证能够唤醒对方的线程。但弊端是把本方线程也唤醒,效率低。原创 2016-01-05 21:30:18 · 272 阅读 · 0 评论 -
Java基础:死锁示例
java多线程编程中,如果线程锁使用不当,就会产生死锁,以下是一个简单的死锁示例。public class DeadRunnable implements Runnable{ Object locka=new Object(); Object lockb=new Object(); boolean flag; public DeadRunnable(boolean fl原创 2015-12-19 21:02:27 · 397 阅读 · 0 评论 -
Java基础:多线程之CountDownLatch、CyclicBarrier、Exchanger
多线程之CountDownLatch、CyclicBarrier、Exchanger原创 2016-01-18 20:41:31 · 327 阅读 · 0 评论 -
Java基础:多线程之ReadWriteLock、Condition、Semaphore
ReadWriteLock 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥,这是由JVM自己控制的,我们只需上好相应的锁即可原创 2016-01-18 20:16:25 · 301 阅读 · 0 评论 -
Java基础:正则表达式regex
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”); 2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。 正则表达式的特点是: 1. 灵活性原创 2015-10-21 21:50:59 · 616 阅读 · 0 评论 -
assert用法
1.简介assertion(断言)在软件开发中是一种常用的调试方式,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告并且退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为...原创 2018-04-12 21:06:30 · 20692 阅读 · 1 评论