Java 笔记
文章平均质量分 52
Java 笔记
假装你是大灰狼
移动端工程师
展开
-
Java Calendar用法
1. Calendar初始化Calendar calendar = Calendar.getInstance();默认是调用GregorianCalendar实例返回,在GregorianCalendar的构造函数中,设置为当前时间public GregorianCalendar(TimeZone zone, Locale aLocale) { super(zone, aLocal...原创 2018-11-12 17:36:54 · 3371 阅读 · 1 评论 -
Java SimpleDateFormat用法
1. SimpleDateFormat类SimpleDateFormat是一个日期格式化类,用来格式化日期。// 构造方法public SimpleDateFormat(String pattern)// 格式化public final String Format(Date date)// 转换public Date parse(String source)throws Pars...原创 2018-11-13 13:35:24 · 550 阅读 · 1 评论 -
Java Formatter用法
1. Formatter类1.1 使用方法Formatter formatter = new Formatter([destination]);formatter.format(String format, Object…args);1.2 使用说明(1) F...转载 2018-11-13 14:53:15 · 8759 阅读 · 1 评论 -
Java 内部类
前言Java拥有四种内部类:静态内部类,成员内部类,局部内部类和匿名内部类。1. 静态内部类静态内部类有static修饰,被声明为外部类的静态成员,它的行为和一般的类是一样的。在接口中的内部类都是静态内部类。静态内部类是外部类的成员,可以访问外部类的所有成员,包括私有成员。public class Super { private int iValue = 1; publi...原创 2018-11-19 10:46:42 · 199 阅读 · 1 评论 -
Java String的intern方法
1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String("&a转载 2018-11-19 10:58:36 · 690 阅读 · 1 评论 -
Java Timer类
1. Timer类Timer类主要用于设置计划任务,TimerTask用于实现任务。public class ThreadTimer { public static void main(String[] args) { Timer timer = new Timer(); TimerTask task = new TimerTask() { ...原创 2018-11-19 14:06:40 · 522 阅读 · 1 评论 -
Java 引用类型
1. 强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。2. 软引用(S...转载 2018-11-19 14:24:15 · 224 阅读 · 1 评论 -
Java String匹配算法
1. String匹配在一个文本或者较长的一段字符串中,找出一个指定字符串,并返回其位置。指定一个父类AbstractMatch,使用matchAtPosition查看是否匹配。public abstract class AbstractMatch { protected final String pattern; public AbstractMatch(String pa...原创 2018-11-19 14:54:33 · 4489 阅读 · 1 评论 -
Java StringTokenizer用法
相关文章Java String匹配算法Java String的intern方法Java StringTokenizer应用1. StringTokenizer应用StringTokenizer可以把一个字符串分解为单词或者标记,StringTokenizer有三个构造函数。StringTokenizer(String str) // 使用默认分割符" \t\n\r\f&a原创 2018-11-19 15:04:08 · 785 阅读 · 1 评论 -
Java 重载与覆盖
1. 重载与覆盖重载,提供多个具有相同名字的方法,但是它们具有可以彼此分开的不同签名。覆盖,将方法的超类实现替代为自己的实现,签名必须相同。如果返回的类型是引用类型,那么覆盖方法的返回类型可以申明为超类方法返回类型的值类型。子类可以改变超类方法的访问修饰符,但只能提供更多的访问权限。覆盖方法可以改变其他的方法修饰符,可以改变synchronized、native和strictfp修饰...原创 2018-11-20 10:35:39 · 951 阅读 · 1 评论 -
Java enum枚举
用法一:常量在JDK1.5 之前,我们定义常量都是: public static final....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color&nb...转载 2018-11-20 11:27:09 · 251 阅读 · 1 评论 -
Java 关键字strictfp、volatile和transient
1. strictfp浮点运算有两种运行模式:严格浮点模式和非严格浮点模式。当我们执行严格浮点运算时,在所有的Java虚拟机实现上运行结果都是精确相等的。strictfp可以用来修饰类、接口和方法。当声明一个方法是strictfp时,该方法中的所有代码都会遵循严格限制规则来执行。当使用是strictfp来修饰类或接口时,其中的所有代码都会在严格模式下执行。2. volatileJa...原创 2018-11-20 15:15:13 · 409 阅读 · 1 评论 -
Java 块加密
块加密块加密,英文Block Cyper,又称分组加密,是一种常见的对称加密,具有代表性的块加密有DES,AES,3DES等。块加密的工作模式允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性。ECB模式又称电子密码本模式:Electronic cod...转载 2018-11-26 14:36:02 · 498 阅读 · 0 评论 -
Java 加密算法
1. 散列算法MD5和SHA主要通过采集文件的信息摘要,以此进行计算并加密。常被用来一致性验证、数字证书和安全访问认证。MD5加密MD5加密后的位数一般为两种,16位与32位。16位实际上是从32位字符串中,取中间的第9位到第24位的部分。public class MD5 { public static void encrypt(String value) { ...原创 2018-11-26 17:22:06 · 1747 阅读 · 1 评论 -
Java Thread.wait和Thread.notify方法
1. wait和notify方法wait方法可以使当前执行代码的线程进行等待,notify方法用来通知哪些等待该对象锁的其它线程。wait和notify方法必须要获得该对象的锁,才能运行,否则会报IllegalMonitorStateException的异常。try { Object lock = new Object(); synchronized (lock) { ...原创 2018-12-03 08:45:54 · 2731 阅读 · 1 评论 -
Java Thread.join方法
1. Thread.join方法join方法会等待指定线程结束,然后才会继续运行。public class ThreadJoin { public static void main(String[] args) { try { ThreadA threadA = new ThreadA(); threadA.start(...原创 2018-12-03 08:56:26 · 540 阅读 · 1 评论 -
Java synchronized关键字
1. synchronized关键字synchronized用于实现同步操作,防止出现脏读,常用于修饰方法和代码块。2. synchronized同步当synchronized用于修饰方法时,线程锁的对象是其自身,等同于synchronized(this){}代码块,也等同于synchronized(锁对象){}。public class ObjectLock { public ...原创 2018-12-03 09:05:54 · 169 阅读 · 1 评论 -
Java ThreadLocal类
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图...转载 2018-12-03 09:19:39 · 501 阅读 · 1 评论 -
Java Lock对象
1. ReentrantLock类ReentrantLock可以实现线程之间同步互斥,类似于synchronized同样的效果。public class ThreadReentrantLock { public static void main(String[] args) { ThreadA threadA = new ThreadA(); for...原创 2018-12-03 09:26:08 · 3240 阅读 · 1 评论 -
Java Daemon线程
所谓后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程不属于程序中不可或缺的一部分。当所有的非后台线程结束时,程序也将终止。public class SimpleDaemons extends Thread { public SimpleDaemo...转载 2018-12-03 09:46:34 · 338 阅读 · 1 评论 -
Java 线程工具类
1. CountDownLatchCountDownLatch首先定义任务次数,并调用await()方法等待任务完成。调用countDown()方法表明已经完成一项任务,当任务全部完成后,继续await()方法后的任务。public class CountDownLatchThread extends Thread { CountDownLatch latch; publi...原创 2018-12-03 13:48:27 · 2426 阅读 · 1 评论 -
Java Thread.sleep方法
1. Thread.sleep方法sleep方法挂起当前线程,直到一段时间后再次进入等待状态。public class ThreadSleep extends Thread { @Override public void run() { System.out.println("ThreadSleep begin " + System.currentTimeMi原创 2018-12-03 14:40:10 · 2363 阅读 · 1 评论 -
Java Thread.interrupt方法
Thread.interrupt()方法Thread.interrupt()方法不会终止一个正在运行的线程,只是发出一个阻塞状态,调用Thread.isInterrupted()方法可以判断。public class ThreadInterrupt extends Thread { public void run() { boolean pause = fal...原创 2018-12-03 15:01:37 · 755 阅读 · 1 评论 -
Java URI和URL
1. URL统一资源定位符URL(Uniform Resource Location),统一资源定位符,可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL主要由Protocol://Authority/File#ref组成。String[] address = new String[]{ "http://user:pwd@www.abc....原创 2018-12-04 10:02:45 · 2127 阅读 · 1 评论 -
Java NetworkInterface和InetAddress
1. NetworkInterface使用NetworkInterface类获得网络接口信息,调用NetworkInterface.getNetworkInterfaces()获取所有网络接口。Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();while (inte...原创 2018-12-04 10:04:18 · 962 阅读 · 1 评论 -
Java Socket套接字
1. SocketSocket主要用来收发服务器数据。主要方法 socket.getInputStream() // 接收服务器输入 socket.getOutputStream() // 发送服务器输出 socket.getInetAddress() // 服务器地址 socket.getPort() // 服务器端口号 s...原创 2018-12-04 10:05:39 · 397 阅读 · 1 评论 -
Java Ftp客户端
1.第三方库commons-net-*.jar打开http://commons.apache.org/proper/commons-net/download_net.cgi下载jar包2.上传文件private boolean upload(String absolutePath, String name) { FTPClient ftpClient = new FTPClient(...原创 2018-12-04 15:11:51 · 1111 阅读 · 1 评论 -
Java Telnet客户端
1.第三方库commons-net-*.jar打开http://commons.apache.org/proper/commons-net/download_net.cgi下载jar包。2.telnet 客户端private void connectToServer(String server) { TelnetClient telnetClient = new TelnetClie...原创 2018-12-04 15:19:44 · 1561 阅读 · 1 评论 -
Java 排序算法
1. 冒泡排序冒泡排序是排序算法中最简单的,遵循以下规则从最左边开始,比较两个相邻的值如果左边的值大于右边,交换位置向右移动,比较下面两个值按照这样比较下去一直到最右边,最大值被交换到最右边。public void bubbleSort(int[] array) { for (int end = array.length - 1; end > 1; end--) {...原创 2018-12-04 16:01:20 · 170 阅读 · 1 评论 -
Java Annotation注解
一、认识注解注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5...转载 2018-12-05 09:03:04 · 248 阅读 · 1 评论 -
Java RMI应用
RMI的定义RPC (Remote Procedure Call):远程方法调用,用于一个进程调用另一个进程中的过程,从而提供了过程的分布能力。RMI(Remote Method Invocation):远程方法调用,即在RPC的基础上有向前迈进了一步,提供分布式对象间的通讯。允许运...转载 2018-12-10 12:25:18 · 689 阅读 · 1 评论 -
Java 中的String、StringBuilder以及StringBuffer
一.你了解String类吗?想要了解一个类,最好的办法就是看这个类的实现源代码,String类的实现在\jdk1.6.0_14\src\java\lang\String.java文件中。打开这个类文件就会发现String类是被final修饰的:public final class ...转载 2018-12-11 10:12:43 · 317 阅读 · 1 评论 -
Java NIO用法
1.NIO在Java的标准I/O中,提供了基于流的I/O实现,即InputStream和OutputStream。NIO是New I/O的是简称,基于块(Block),以块为基本单位处理数据。其中最主要的两个概念是缓冲(Buffer)和通道(Channel)。NIO实现文件的拷贝,读取Channel中的数据,写入Buffer中,再从Buffer中读取。public void copyFile...原创 2018-12-11 16:30:01 · 449 阅读 · 1 评论 -
Java 原子类
Java提供的原子类是靠 sun 基于 CAS 实现的,CAS 是一种乐观锁。原子变量类相当于一种泛化的 volatile 变量,能够支持原子的和有条件的读-改-写操作。AtomicInteger 表示一个int类型的值,并提供了 get 和 set 方法,这些 Volatile 类型的i...转载 2018-12-11 17:47:25 · 732 阅读 · 1 评论 -
Java 动态代理
动态代理是指在运行时,动态生成代理类。代理类的字节码将在运行时生成并载入当前的ClassLoader。生成动态代理类的方法很多,如JDK自带的动态代理、CGLIB、Javassist或者ASM库。JDK动态代理使用简单,它内置在JDK中,因此不需要引入第三方J...转载 2018-12-11 18:08:14 · 133 阅读 · 1 评论 -
Java Pattern和Matcher用法
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher。Pattern,一个Pattern是一个正则表达式经编译后的表现模式。Matcher,一个Matcher对象是一个状态机器,它依据Pattern对象...转载 2018-12-12 16:04:32 · 3113 阅读 · 1 评论 -
Java DecimalFormat用法
在项目中遇到需要维护层级关系的数据,在parentid里遇到这样一个需求,需要在一个数的前面加0,使这个字符串保持固定的长度,这样就遇到了这个类——DecimalFormat,继承自NumberFormat。在这里记录一下它常用到的一些方法和使用方法:double ...转载 2018-12-12 17:06:06 · 2287 阅读 · 2 评论 -
Java 可变参数
可变参数适用于参数个数不确定,类型确定的情况,一般把可变参数当做数组处理。可变参数以...的形式实现。public void print(int...args) { for (int value : args) { System.out.print(value + " "); } System.out.println();}调用print()方法...原创 2018-12-13 10:31:15 · 238 阅读 · 1 评论 -
Java 自动资源管理
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。原有拷贝文件代码一般都是在finally中关闭。public void copyFile(String fileInput, String fileOutput) {...原创 2018-12-13 13:47:28 · 922 阅读 · 1 评论 -
Java 静态导入
利用import static 可以不通过调用包名,直接使用包里的静态方法。打印代码一般如下public static void main(String[] args) { System.out.println("Hello World");}使用import static后import static java.lang.System.out;public static voi...原创 2018-12-13 14:19:30 · 243 阅读 · 1 评论