java基础
文章平均质量分 50
Inovation_Sky
多情自古空余恨
展开
-
二进制和十进制之间的互相转换
二进制:00010011转换为如下=》十进制:2^0*1+2^1*1+2^2*0+2^3*0+2^4*1=1+2+0+0+16=19十进制:19转换为如下=》二进制:16 8 4 2 1 快速转换为: 16 2 1为1(16+2+1=19),否则为0,则转换出来的二进制为:1 0 0 1 1,空位补0则为0001 0011。下面说下负数的二进制转换:通俗的说:正数的反码和补码都与原码相同。负数的反码为对该数的原码除符号位外各位取反。负数的补码为对该...原创 2020-10-14 15:32:01 · 1842 阅读 · 0 评论 -
JAVA位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 &11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。 /** * 按位计算 */ @Test public void testBitOperation() {...原创 2020-10-14 14:08:40 · 291 阅读 · 0 评论 -
jdk实现高性能异步线程开启
使用jdk的java.util.concurrent.Executors类,实例如下,自行领悟其中的道理,自己跑下就知道了 // 开启线程 ExecutorService cacheThreadPool = Executors.newCachedThreadPool(); Callable clientAction = new Callable()原创 2017-11-22 09:42:44 · 963 阅读 · 1 评论 -
jdk1.7 nio实现文件拷贝
主要原理是利用jdk1.7的Files.walkFileTree遍历文件树,再在里面用Files.copy即可实现高性能jdk new io文件拷贝.可以参考如下代码:/** * 拷贝标准工程 * * @param source 源路径 * @param target 目标路径 * @throws IOException IO异常原创 2017-11-08 10:51:11 · 923 阅读 · 0 评论 -
使用JDK1.7nio访问本地磁盘
JDK1.7新特性nio提供了很多便捷的io文件访问方法,如Files工具类,其中的walkFileTree方法便可方法任何路径,有兴趣的朋友可以自行查看源码进行研究,以下是个人封装代码:文件访问入口代码: /** * 文件树Facade * * @author 许畅 * @since JDK1.7 * @version 2017年4月27日 许畅 新建 */@Dwr...原创 2017-05-15 15:53:47 · 454 阅读 · 0 评论 -
JDK中的多线程并发调用
使用JDK1.5中的Executors可以创建线程池实现并发操作,详细实现可查看JDK源码,以下是本人整合的工具类: package xxx.task;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent....原创 2017-05-15 15:41:18 · 814 阅读 · 0 评论 -
获取java类中的具体泛型实现类
先科普下,泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要...原创 2017-01-19 16:57:46 · 2174 阅读 · 0 评论 -
ehcache 缓存使用
一:详细配置步骤 1,添加ehcache.xml文件 将ehcache.xml文件添加到src路径下面。ehcache.xml文件内容如下[html] view plain copy print?ehcache> diskStore path="java.io.tempdir" />转载 2016-05-20 14:35:30 · 390 阅读 · 0 评论 -
Ehcache 整合Spring 使用页面、对象缓存
Ehcache在很多项目中都出现过,用法也比较简单。一般的加些配置就可以了,而且Ehcache可以对页面、对象、数据进行缓存,同时支持集群/分布式缓存。如果整合Spring、Hibernate也非常的简单,Spring对Ehcache的支持也非常好。EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布式的Cache,可以作为Hibernate的缓存插件。同时它也能转载 2016-05-20 14:34:54 · 388 阅读 · 0 评论 -
使用wkhtmltopdf将html页面转换为image或者pdf
维基html转pdf或者html转image图片是一款C++编写的软件,基于QT Webkit rendering engine生成图片和pdf。可以参考 https://wkhtmltopdf.org 查看更多的文档和资料,使用它我们需要下载和安装该软件到本地。使用java调用,可参考如下调用: /** * 1.wkhtmltoimage http://xxx/xxx/i...原创 2018-08-28 09:49:53 · 3105 阅读 · 2 评论 -
使用java完美实现打开默认浏览器访问url
使用java打开浏览器地址原理是通过 Runtime.getRuntime().exec(parts);命令打开本地默认浏览器,如果使用command指令打不开的话则使用jdk的 java.awt.Desktop.getDesktop().browse(uri); 打开参考代码如下: /** * 打开浏览器访问URL */ public static v...原创 2018-09-14 13:03:01 · 8903 阅读 · 0 评论 -
获取JAVA方法参数名称的几种方式
1.使用JDK1.8的Parameter.getName()方法。public String[] getParameterNames(Method method) { Parameter[] parameters = method.getParameters(); String[] parameterNames = new String[parameters.length]; f...原创 2018-12-05 11:44:26 · 3317 阅读 · 0 评论 -
使用jdk1.7nio实现删除文件夹内所有的文件
通过jdk1.7的Files.walkFileTree实现遍历文件树的原理实现,删除文件夹下所有的文件,先把文件删除再把上级文件夹删除。实现代码:package xxx.nio;import java.io.IOException;import java.nio.file.FileVisitOption;import java.nio.file.Files;import jav...原创 2019-04-25 10:46:36 · 1729 阅读 · 0 评论 -
通过jdk1.7nio实现对zip包的压缩和解压
将目标目录打包压缩到zip包中,通过jdk1.7的Files.walkFileTree原理实现,参考代码如下:/** * 将目标文件或者文件夹压缩到zip中 * * @param zipOutpusStream zip输出流 * @param target 需要压缩的目标目录 * @param ignoreEntryNames 忽略压缩目录...原创 2019-04-25 10:55:31 · 1577 阅读 · 0 评论 -
通过jdk实现xsd校验xml
利用jdk自身的javax.xml.validation.Schema特性实现对象xsd对xml的校验,参考代码如下:package xxx.common.util;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.file.Path;imp...原创 2019-04-25 10:58:51 · 684 阅读 · 0 评论 -
jaxb读取xml时忽略命名空间解决读取时报错问题
在xml时一般我们会加上xsd等约束和命名空间,加上了有时会导致jaxb读取xml报错,众里寻他千百度,那人却在灯火阑珊处,经过一番苦寻找到了解决方法,忽略命名空间的方式读取xml,实例代码如下:package xxx;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;i...原创 2019-04-25 11:09:32 · 2058 阅读 · 4 评论 -
使用spring的AntPathMatcher匹配url路径
spring的AntPathMatcher用来匹配url比较好用,该类的部分代码借鉴与apache ant故命名为AntPathMatcher,The mapping matches URLs using the following rules:匹配url遵循如下规则:? matches one character(匹配一个字符) * matches zero or more cha...原创 2019-04-25 11:51:10 · 4038 阅读 · 0 评论 -
使用jdk的sun java doc工具包获取类中方法的参数注释信息,方法签名注释信息,返回值注释信息,方法上的注解信息
某日工作时需要将类中所有方法详细信息收集到excel中,包括方法的参数注释信息,方法签名注释信息,返回值注释信息,方法上的注解信息,而我需要列举的类方法有80 90个那不是累死人。突然想到曾经写过通过javadoc获取注释信息的功能,而注解信息,通过jdk暴露出来的api 是获取不到,需要另辟蹊路,经过研究我发现sun.javadoc中有注解的信息,只是没有暴露出来,在他的com.sun.tool...原创 2019-08-08 19:30:58 · 1483 阅读 · 1 评论 -
freemarker生成java代码
public abstract class AbstractGenerator { /** 日志 */ protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractGenerator.class); /** * 生成代码 * *原创 2016-04-08 20:10:31 · 716 阅读 · 0 评论 -
读配置文件可以保持顺序的 Java Properties 类
序前几天,公司项目中有一个需求是读取配置文件的,而且最好能够保证加载到内存中的顺序能够和配置文件中的顺序一致,但是,如果使用 jdk 中提供的 Properties 类的话,读取配置文件后,加载到内存中的顺序是随机的,不能保证和原文件的顺序一致,因此,jdk 提供的 Properties 是不行的。背景由于有这样的需求,而 J转载 2016-02-29 17:11:41 · 2463 阅读 · 0 评论 -
java的Serialization 机制
Serialization是指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件、字节流、网络数据流。 JAVA中实现serialization主要靠两个类:ObjectOuputStream和ObjectInputStream。他们是JAVA IO系统里的OutputStream和InputStream的子类。既然他们是JAVA IO转载 2015-02-02 11:47:58 · 534 阅读 · 0 评论 -
java中静态域,静态常量,静态方法
静态域:如果将类中的域定义为static,则这个域属于这个类,而不属于这个类的某个对象,每个类中只有 一个这样的域,而每一个类对象对于所有的实例域(即没有定义为static的域)都有自己的一份拷贝。例如:class Employee{ …… private int id; private static int nextId = 1;}如原创 2015-01-14 10:44:07 · 2426 阅读 · 1 评论 -
批处理batch,执行多个SQL语句
批处理batch,执行多个SQL语句。[sql] view plaincopytry{ stmt=conn.createStatement(); conn.setAutoCommit(false);//取消自动提交 stmt.addBatch("insert into person (name,pa转载 2015-04-03 19:23:37 · 1059 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap的区别
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写Hash转载 2015-04-29 16:00:14 · 367 阅读 · 0 评论 -
POI 获取Excel列数和行数的方法
//获取指定行,索引从0开始hssfRow=hssfSheet.getRow(1);//获取指定列,索引从0开始hssfCell=hssfRow.getCell((short)6);//获取总行数//int rowNum=hssfSheet.getLastRowNum();//获取一个excel表格中的总记录数int rowNum=storage原创 2015-04-18 14:53:44 · 32077 阅读 · 1 评论 -
POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的文章),之前写过POI对七种文档(当然也包括EXCEL)的内容读取操作的文章,这次要写的就非常重要了,就是开发中经常会用到的POI读取数据库导出EXCEL的操作,所谓导出EXCEL也就是生成带数据内容的新的EXCEL文件目前的POI版本是3.7下载转载 2015-04-21 20:05:17 · 503 阅读 · 0 评论 -
POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到POI设置EXCEL单元格格式为文本格式,剩下的设置小数、百分比、货币、日期、科学计数法和中文大写这些将在下面一一写出以下将要介绍的每一种都会用到这三行中的变量 HSSFWorkbook demoWorkBook = new HSSFWorkbook();转载 2015-04-21 19:50:20 · 1080 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 fi转载 2015-06-16 11:13:04 · 302 阅读 · 0 评论 -
Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2015-07-07 21:28:38 · 426 阅读 · 0 评论 -
java四个元注解的作用
四个元注解分别是:@Target,@Retention,@Documented,@Inherited ,再次强调下元注解是java API提供,是专门用来定义注解的注解,其作用分别如下: @Target 表示该注解用于什么地方,可能的值在枚举类 ElemenetType 中,包括: ElemenetType.CONSTRUCTOR-----------原创 2015-08-28 11:37:13 · 8944 阅读 · 0 评论 -
java和javascript的数字校验
java和javascript的数据验证 java:package lottery.web.common;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.regex.Matcher;impor转载 2015-08-16 12:58:50 · 525 阅读 · 0 评论 -
安装jd-core反编译
闲暇之余,写了一个Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝集成,能够很方便的使用本插件查看类库源码,以及采用本插件进行Debug调试。Eclipse Class Decompiler插件更新站点: http://feeling.so转载 2015-09-07 11:29:56 · 3698 阅读 · 0 评论 -
在eclipse.ini中为eclipse指定jdk启动
机器上装了好几个版本的jdk,要用指定的jdk启动eclipse,只需修改eclipse.ini文件即可。参考:-vmC:/jdk1.6.0_18/bin/javaw.exe (//-- 注:放第一行)--launcher.XXMaxPermSize256m-vmargs-Xms128m-Xmx512m其中红色的两行为指定的jdk启动地址,注意:javaw.原创 2015-08-23 12:25:03 · 366 阅读 · 0 评论 -
Eclipse断点调试
1 Debug视图1.1 线程堆栈视图 线程堆栈视图表示当前线程的堆栈,从中可以看出在运行哪些代码,并且整个调用过程,以及代码行号。分别介绍一下这几个按钮的含义。从左至右分别为:1.表示当前实现继续运行直到下一个断点,快捷键为F8。2.表示打断整个进程3.表示进入当前方法,快捷键为F5。4.表示运行下一行代码,快捷键为F6。5.表示退出当前方法,转载 2015-05-18 18:39:51 · 478 阅读 · 0 评论 -
Calendar用法
Calendar的核心用法为 add方法具体实现如下:public static String getTwoMonthSQLFilter(String column) { StringBuffer filter = new StringBuffer(); Calendar previous = Calendar.getInstance(); previous.add(Cale原创 2015-12-23 12:49:34 · 475 阅读 · 0 评论 -
java中注解的使用与实例
java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种:生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等跟踪代码依赖性,实现替代配置文件功能。比转载 2016-02-04 10:00:36 · 485 阅读 · 0 评论 -
java string 首字母大写方法
java string,需要进行首字母大写改写,网上大家的思路基本一致,就是将首字母截取,转化成大写然后再串上后面的,类似如下代码 //首字母大写 public static String captureName(String name) { name = name.substring(0, 1).toUpperCase() + name.substring(1原创 2016-03-04 16:57:04 · 1596 阅读 · 0 评论 -
Calendar计算两个日期之间的天数和周数
每天一篇开发日记,轻松快乐每一天!今天介绍的是利用java,Calendar类计算出两个日期之间的天数和周数的算法!计算出日期之间的天数:public Object countTwoDate(Object startDate, Object endDate) { if(StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmp原创 2015-01-30 09:44:17 · 6775 阅读 · 0 评论