
Java
常写写代码
这个作者很懒,什么都没留下…
展开
-
Java命令行解析工具Apache CLI
Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种:POSIX(Portable Operating System Interface of Unix)中的参数形式,例如 tar -zxvf foo.tar.gzGN转载 2017-03-28 10:59:33 · 805 阅读 · 0 评论 -
Java实现tail n功能
Java实现tail n功能使用RandomAccessFile随机读取功能,从文件末尾一次读取若干个字节,然后转成字符串,存储在结果中,下次往前递推,读取够n行,或者文件读取完毕结束import java.io.IOException;import java.io.RandomAccessFile;public class Tailing { public static voi...原创 2019-04-28 11:35:28 · 2034 阅读 · 0 评论 -
Spring缓存管理详解
从3.1开始,Spring引入了对Cache的支持。Spring的Cache并不是自身实现,而是提供缓存的使用、写入、清除等控制,即控制某个方法是真正执行,还是从缓存读取,调用某个写操作的方法后,是否要清除缓存的逻辑,这样避免在业务中出现大量的逻辑判断,简化业务代码。缓存管理类似与实务管理,提供了一套控制流程,而真正的实现交给其他组件。使用Spring Cache需要有两个步骤:在对应的类...原创 2019-04-29 12:01:20 · 1123 阅读 · 0 评论 -
Java面试题—基础(一)
标题面向对象的特征有哪些方面?抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果...原创 2019-05-10 14:31:31 · 382 阅读 · 0 评论 -
枚举类也是可以多个实例化的
枚举类是Java5新添加的一种类型,其本质也是一个类,既然是类,怎么不会让实例化,不然本身的那几个实例怎么得来的枚举类并非坚不可摧,我们可以通过下面的代码,绕过构造方法newInstance时,对枚举类的检查,注意是用反射,直接拿到ConstructorAccessor进行实例化public enum MyEnum { D; public static void...原创 2019-05-05 20:24:43 · 4373 阅读 · 0 评论 -
GeneratedSerializationConstructorAccessor*
Classfile /D:/x.class Last modified 2019-5-8; size 1320 bytes MD5 checksum 843f90b5fa55c34c5b3e1ae38a07a372public class sun.reflect.GeneratedSerializationConstructorAccessor1 extends sun.reflect...原创 2019-05-08 22:31:36 · 1913 阅读 · 0 评论 -
DBCP连接池配置详解
Spring DBCP配置<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <prop...原创 2016-08-21 23:35:06 · 10139 阅读 · 0 评论 -
Java字符串拼接符“+”的字节码分析
引子:工作项目开发已经差不多了,于是有时间自学一些东西。基础还是很重要的,开始看《Thinking In Java》第四版。看到String这里的时候,书中提到了“+”与“StringBuilder”的区别。但是该书该版是基于JDK5的,那么,对于JDK8,又是如何呢。下面,我将通过一个示例,进行探讨一下。范例:下面,是我们的Java Demo,将使用三种方式来进行一个字符串的操作。...转载 2019-05-07 20:49:46 · 667 阅读 · 0 评论 -
获取字符串中最长单词的长度
有一个字符串,里面包含空格和其他非空白字符,求不含空格的最大字串的长度。String s = " aa aa aaaabd 4545545454545454545 aaaddddfa a a a aa aa a ";char[] chars = s.toCharArray();int a = -1;int maxLen = 0;for (int i ...原创 2019-04-22 14:17:00 · 2562 阅读 · 0 评论 -
IPv4地址与Long互转
IPv4使用四个字节表示,每一个字节可以表示0~255无符号数字256个,可以将其转换为一个4个字节的正数,如果可以接受负数,int类型是可以容纳的,因为可以逆向转换,没有丢失数据,如果要比较大小,可以转成无符号的longIP地址转long/int和int/long转IP地址 public static long ip2Long(String ip) { return Integ...原创 2019-04-22 11:12:42 · 1194 阅读 · 0 评论 -
单例模式的八种写法比较
单例模式的八种写法比较 单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到饿汉式和懒汉式这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调...转载 2019-04-16 20:24:39 · 162 阅读 · 0 评论 -
java使用内置Md5算法加密内容
以下是Md5工具类代码import java.io.UnsupportedEncodingException;import java.security.MessageDigest;public class MD5Util { private static final char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', ...原创 2017-03-14 14:35:23 · 472 阅读 · 0 评论 -
Class.getResource()、ClassLoader.getResource()、ClassLoader.getSystemResource()区别
public java.net.URLgetResource(String name) { name = resolveName(name); ClassLoadercl =getClassLoader0(); if (cl==null) { // A system class.原创 2016-09-04 22:51:34 · 10338 阅读 · 1 评论 -
java URL的构造函数说明
URL是典型的bridge设计模式URL构造函数完成的工作URL(String protocol, String host, String file)URL(String protocol, String host, int port, String file)URL(String protocol, String host, int port, String file, URLS转载 2017-03-26 17:19:52 · 3334 阅读 · 0 评论 -
打开Java中的SecurityManager
SecurityManager在Java中被用来检查应用程序是否能访问一些有限的资源,例如文件、套接字(socket)等等。它可以用在那些具有高安全性要求的应用程序中。通过打开这个功能, 我们的系统资源可以只允许进行安全的操作。当Java虚拟机启动时,它首先通过检查系统属性java.security.manager来确定SecurityManager是否打开了。如果打开了,那么Securi转载 2017-03-26 17:29:51 · 1409 阅读 · 0 评论 -
重新编译JDK的src.zip=>rt_debug.jar,使调试可以进入系统类审查变量
1.问题的出现 不知道什么时候开始(估计使sun被Oracle收购之后吧)eclipse调试系统类F5进不去了,或者进去不能看到局部变量的值,Oracle这个大龟壳总是担心被别人知道它的代码是怎么逻辑,rt.jar编译时去除了调试信息,给了源码不能调试,岂不悲乎?Java一向秉承开源的优良传统,Oracle真是个坑货。怎么办呢?我们可以去网上下载带编译信息的r原创 2017-03-26 18:55:04 · 2708 阅读 · 1 评论 -
对Java的URL类支持的协议进行扩展的方法
JAVA默认提供了对file,ftp,gopher,http,https,jar,mailto,netdoc协议的支持。当我们要利用这些协议来创建应用时,主要会涉及到如下几个类:java.net.URL、java.net.URLConnection、InputStream。URL类默认支持上述协议,但是有时候我们想自定义协议,怎么办呢?Java提供了三种方法可以支持这个扩展1、URL.setUR...原创 2017-03-26 23:30:21 · 3429 阅读 · 1 评论 -
Java单例模式实现方式
实现方式一览第一种(懒汉,线程不安全)public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) {原创 2017-06-12 18:57:29 · 341 阅读 · 0 评论 -
Java常用系统属性一览
属性名 说明 示例 java.runtime.name 运行时刻名称 sun.boot.library.path 启动目录(bin目录) java.vm.version jvm版本 java.vm.vendor jvm厂商 java.vendor.url jvm厂商网址 path....原创 2018-04-09 21:08:01 · 1417 阅读 · 0 评论 -
Spring @Resource、@Autowired的区别及其两者与@Qualifier结合使用的规则
@Resource@Resource是JSR-250的一个注解,用与资源(通常是JNDI)的注入。Spring对其进行了支持。装配规则:如果指定了name属性,则按照name查找,找到且类型匹配则装配,否则配抛出异常 如果指定了name和type属性,则按照name和type精确查找,找到则装配,找不到抛出异常 如果仅指定了type属性,则按照type查找,如果只找到一个则装配,...原创 2018-11-08 11:48:32 · 3307 阅读 · 0 评论 -
Java面试题—基础(二)
日期和时间**如何取得年、月、日、时、分、秒、毫秒?如何取得从1970年1月1日0时0分0秒到现在的毫秒数?如何取得某月的后一天?如何格式化日期?取得年、月、日、时、分、秒、毫秒 Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.YEAR)); ...原创 2019-05-12 13:23:41 · 223 阅读 · 0 评论