java
zhaojiaxing0216
非学,无以致疑;非问,无以广识
展开
-
使用Comparator实现集合排序
对任意类型集合对象进行整体排序,排序时将此接口的实现传递给Collections.sort方法或者Arrays.sort方法排序.实现int compare(T o1, T o2);方法,返回正数,零,负数各代表大于,等于,小于。用于排序的示例代码如下:实体类:Studentpackage com.zjx;public class Student { private Stri...原创 2020-02-07 22:07:56 · 1141 阅读 · 0 评论 -
JAVA NIO(四)NIO非阻塞式网络通信
1. 阻塞与非阻塞传统的IO流都是阻塞式的。也就是说,当一个线程调用read()或write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。Java NIO 是非阻塞模式的。当线程从某通道进行读写数据...原创 2020-02-06 12:21:22 · 580 阅读 · 0 评论 -
JAVA NIO(三)通道(Channel)
1. 通道(Channel)通道(Channel):由java.nio.Channels包定义的。Channel表示IO源与目标打开的连接。Channel类似于传统中的“流”,只不过Channel本身不能直接访问数据,Channel只能与Buffer进行交互。Channel在java NIO中负责缓冲区的数据传输。Channel本身不存在数据,因此需要配合缓冲区进行传输。Java 为 C...原创 2020-02-05 22:39:28 · 932 阅读 · 0 评论 -
JAVA NIO(二)NIO之缓冲区(Buffer)详解
缓冲区在java NIO中负责数据的存取。缓冲区就是数组,用于存储不同数据类型的数据原创 2020-02-05 21:16:56 · 607 阅读 · 0 评论 -
JAVA NIO(一)基本概念
Java NIO(New IO)是从java 1.4版本开始引入的一个新的IO API,可以替代标准的java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Sun官方标榜的特性如下:为所有的原始类型提供(Buffer)缓存支持字符集编码解码方案Channel:一个新的原始I/O抽象支持锁和内存映射文件的文件访问接口提供多...原创 2020-02-05 21:12:55 · 197 阅读 · 1 评论 -
IO系列之对象序列化
1. 对象序列化介绍对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。其他程序一旦获得了这种二进制流,都可以将这种二进制流恢复成原来的Java对象。 简单来讲,对象序列化就是将内存中的对象数据转换为二进制流进行传输的操作。对象序...原创 2020-02-05 11:41:13 · 243 阅读 · 0 评论 -
IO系列之缓冲流详解
缓冲流是一个包装类,起到缓冲作用。缓冲流分为-字符缓冲(BufferedReader和BufferedWriter)和字节缓冲流(BufferedInputStream和BufferedOutputStream)原创 2020-02-04 14:49:27 · 800 阅读 · 0 评论 -
java实现文件夹的拷贝(复制文件夹)
复制文件夹其实就是通过递归复制文件的过程,具体实现如下: /** * 复制文件夹(使用缓冲字节流) * @param sourcePath 源文件夹路径 * @param targetPath 目标文件夹路径 */ public static void copyFolder(String sourcePath,String targetPath) ...原创 2020-02-03 20:44:08 · 4707 阅读 · 0 评论 -
java实现文件拷贝的七种方式
java拷贝文件的七中方式原创 2020-02-03 18:24:09 · 3084 阅读 · 0 评论 -
IO系列之内存流
内存流:在内存中读写数据特点:数据在内存中处理比磁盘(硬盘)要更快一些,有时候可能需要临时在内存中保存并处理数据,内存流效率会更高java.io提供了字节内存流和字符内存流:字节内存流:ByteArrayInputStream和ByteArrayOutputStream字符内存流:CharArrayReader和CharArrayWriterByteArrayInputStr...原创 2020-02-02 21:58:31 · 437 阅读 · 0 评论 -
IO系列之字节流和字符流
IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流进行输入、输出操作一般都会按照如下步骤进行:通过File类定义一个要操作文件的路径通过字节流或字符流的子类对象为父类对象实例化进行数据的读(输入)、写(输出)操作数据流属于资源操作,资源操作必须关闭java.io包定义了两类流:字节流(JDK 1.0):InputStrea...原创 2020-02-02 12:14:50 · 552 阅读 · 0 评论 -
IO系列之使用File类操作文件
1. File类介绍五个核心类:File、InputStream、OutputStream、Reader、Writer一个核心接口:Serializable在整个java.io包里面,File类是唯一一个与文件本身操作有关的类,但是不涉及具体内容。文件本身是指文件的创建、删除等操作2. 通过构造方法设置文件路径public File(String pathname)pathna...原创 2020-02-01 22:49:03 · 263 阅读 · 0 评论 -
java身份证工具类(校验身份证是否合法、通过身份证获取年龄、性别、生日,将15位身份证转为18位等)
一、简介 因为工作需要经常用到身份证做一些相关操作,于是通过查阅资料总结出一些常用的工具方法,包括校验身份证是否合法、通过身份证获取年龄、通过身份证获取性别、通过身份证获取户籍地址、通过身份证获取生日、将15位身份证转为18位身份证等。原创 2020-01-08 14:27:20 · 7661 阅读 · 0 评论 -
java数组详解
数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。在声明数组变量时,需要指出数组类型(数据元素类型紧跟[])和数组变量的名字。例如:int[] a;这条语句只是声明了变量a,并没有将a初始化为一个真正的数组,使用new运算符创建数组。int[] a = new int[10];创建一个数字数组时,所有元素都初始化为0,boolean数组的元素初...原创 2019-12-25 14:11:40 · 329 阅读 · 0 评论 -
通过身份证获取年龄和性别
需要引入commons-lang包package com.zjx.util;import org.apache.commons.lang.StringUtils;import java.text.SimpleDateFormat;import java.util.Date;/** * @author zhaojiaxing * @version 1.0 * @descrip...原创 2019-12-19 10:39:39 · 420 阅读 · 0 评论 -
为何 IntelliJ IDEA 比 Eclipse 更好
圣战有一些没有唯一正确答案的“永恒”的问题,例如哪个更好:是Windows还是Linux,Java还是C#;谁更强壮:Chuck Norris还是Van Damme。其中的一个圣战便是Java IDE的选择:有许多争论的话题是讨论它们哪个有更多的插件、快捷键等等。它们之间有太多的不同而很难决定什么才是最重要的。因此,人们都表示两个IDE在功能性上都差不多,选择某一个则是个人喜好转载 2016-12-30 14:25:49 · 364 阅读 · 0 评论 -
java判断空字符串和对象是否为null
判断空字符串: StringUtils.isEmpty(str); 判断对象为null: Objects.isNull(object); 判断对象不为null: Objects.nonNull(object);原创 2017-07-06 14:35:45 · 6002 阅读 · 0 评论 -
Java截取字符串的常见方法
方法一:通过split()将正则传入split()。返回的是一个字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。String str = "53285964@qq.com";String[] strs = str.split("@");for(int i=0,i<strs.length;i++){ System.out.println(strs[i].toS原创 2017-07-06 15:41:39 · 148840 阅读 · 7 评论 -
两种方式实现java Md5加密
一、加盐方式/** * 生成32位md5码 * @param password * @return */ public static String md5Password(String password) { try { // 得到一个信息摘要器 MessageDigest digest =原创 2017-07-13 15:32:00 · 75116 阅读 · 3 评论 -
java List和数组相互转换方法
前言在java项目中数组和list集合(这里指ArrayList)经常需要互相转换,因此这里把两者互相转换的一些方法总结一下一、List转数组方法一、使用for循环 //要转换的list集合 List testList = new ArrayList(){{add(“aa”);add(“bb”);add(“cc”);}}; //初始化需要得到的数组 Stri原创 2017-10-18 15:15:16 · 214572 阅读 · 11 评论 -
FastJSON常用API介绍以及示例
一、前言 Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。 主要特点:快速FAST (比其它任何基于Java的解析器和原创 2017-10-21 16:52:53 · 4521 阅读 · 0 评论 -
vim常用命令总结 (转)
1.删除字符 要删除一个字符,只需要将光标移到该字符上按下"x"。2.删除一行 删除一整行内容使用"dd"命令。删除后下面的行会移上来填补空缺。3.删除换行符 在Vim中你可以把两行合并为一行,也就是说两行之间的换行符被删除了:命令是"J"。4.撤销 如果你误删了过多的内容。显然你可以再输入一遍,但是命令"u" 更简便,它可以撤消上一次的操作。5.重做 如果你撤消了多次,你还可以用CTR...转载 2018-04-17 10:16:06 · 255 阅读 · 0 评论 -
JDK和JRE的区别是什么?
JRE是指Java运行时环境,是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。JDK是Java开发工具包是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。原创 2016-07-02 01:25:42 · 590 阅读 · 0 评论 -
IP地址的正则表达式
public static String ipRegex(String str){ if(str.matches("((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))")){ System.out.println("原创 2016-06-10 13:53:13 · 371 阅读 · 0 评论 -
Java文件读写操作
file(内存)----输入流---->【程序】----输出流---->file(内存)当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统转载 2016-05-18 22:45:39 · 1532 阅读 · 0 评论 -
三层架构
三层架构:1、持久层(data acess layer):完成数据库相关的操作。采用DAO模式,建立实体类和数据库进行映射。也就是那个类对应哪个表,那个属性对应哪个列。而持久层的目的就是完成关系数据和对象数据的转换。2、业务层(business logic layer):完成业务处理。采用事物脚本模式(将一个业务中所有的业务操作封装成一个方法。保证该方法中所有数据库更新操作同时成功,或同时失败)。3原创 2016-06-05 18:44:04 · 348 阅读 · 0 评论 -
静态变量和成员变量有什么区别?应该怎么调用?
1 静态变量在虚拟机加载的时候就已经加载入内存中,成员变量是对象产生时产生; 2 所有对象共享一个静态变量,但是成员变量因对象不同而不同; 3 可以通过类名 点 变量名的方式调用。成员变量需要创建对象后,用对象名点变量名的方式调用; 4 存放空间不一样,静态变量在数据段中,成员变量在堆中。原创 2016-06-05 18:45:36 · 638 阅读 · 0 评论 -
抽象类和接口的区别
抽象类定义语法:1. abstract class2.访问修饰符都可以3.里面可以是任意属性4.有构造器5.抽象的方法必须写 abstract6.可以有实现方法使用语法:1.可以被子类继承,单继承设计思想:把一脉相承,与生俱来的属性和方法设计在抽象类之中。接口:定义语法:1. interface2.访问修饰符只能是 public 和默认3.里面只能是公共静态常量4.无构造器5.抽象方法可以不写 ab原创 2016-06-10 13:39:38 · 242 阅读 · 0 评论 -
javaBean规范有哪些内容?
1. 必须要有一个公共无参构造(写了带参构造必须添加一个,都不写则有默认)2. Javabean类不应有公共属性,属性都应该是 private3. 为私有(private声明)属性提供符合命名规范的get/set方法4. 应该要实现serializeable 接口5. javaBean类必须是一个公共类,将其访问属性设置为public原创 2016-06-10 13:41:53 · 10832 阅读 · 1 评论 -
听说最近你读过不少书
那些时光噢,很久没有看过书了——此刻的你心里是否会发出这样的感慨?我们总是怪工作太忙,总是怪应酬多、活动多;今天想着去哪玩,明天想着约妹纸……究竟什么时候会想着好好地静下心来翻一翻上面早已布满灰尘的书呢?我理解,那部电视剧确实很精彩;我理解,那游戏确实很好玩。但是当某一天,你会发现越来越跟不上项目的节奏,越来越看不懂同事使用的什么技术竟然可以把一个复杂的功能实现得这么优雅,转载 2017-01-06 16:25:00 · 429 阅读 · 0 评论 -
java8新特性之stream详解
一. 基本概念 1.1 为什么加入 集合的流式操作 JDK8 的Stream 是一个受到 函数式编程 和 多核时代影响而产生的东西。很多时候我们需要到底层返回数据,上层再对数据进行遍历,进行一些数据统计,但是之前的Java API 中很少有这种方法,这就需要我们自己来 Iterator 来遍历,如果JDK 能够为我们提供一些这种方法,并且能够为我们优化就好了。原创 2017-07-13 11:45:38 · 833 阅读 · 0 评论 -
list和数组相互转换
一、数组转换list1、利用Collections.addAll()方法//要转换的数组String[] strs = new String[]{"a","b","c"};//需要得到的list集合List<String> list = new ArrayList<>();//转换方法Collections.addAll(list,strs);System.out.println(lis原创 2017-07-12 12:10:03 · 581 阅读 · 0 评论 -
IntelliJ Idea 常用快捷键列表
IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[ OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示当前文件的结构 Ctrl+F7,可以查询当前元素在当前文件中的引用,然转载 2016-12-21 10:54:51 · 191 阅读 · 0 评论 -
Java图形用户界面
工具类–很常用,可以获取屏幕信息,还可以操作图标图片Toolkit tk = Toolkit.getDefaultToolkit();设置标题this.setTitle(“我的第一个GUI程序。”);设置图标this.setIconImage(tk.createImage(“pic” + File.separator + “14.jpg”));尺寸初始化this.setSize(500, 400);原创 2016-05-15 01:44:53 · 551 阅读 · 0 评论 -
IO流
原创 2016-05-15 01:27:57 · 295 阅读 · 0 评论 -
java.util.calendar类相关API介绍
一、Calendar介绍 Calendar类是一个日历抽象类,提供了一组对年月日时分秒星期等日期信息的操作的函数,并针对不同国家和地区的日历提供了相应的子类,即本地化。从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现(Date的一些方法都过时了)。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。...原创 2016-05-02 18:50:37 · 565 阅读 · 0 评论 -
Java基本数据类型
基本数据类型一共四类八种 数据类型 关键字 所占字节 取值范围 默认值 字节型 byte 1 -128~127(-2^7~2^7-1) 0 短整型 short 2 -32768~32767(-2^15~2^15-1) 0 整型 int 4 -2^31~2^31-1 0 长整型 long 8 -2^63~2^原创 2016-04-07 19:32:18 · 667 阅读 · 0 评论 -
内部类
内部类 1、 概念 在类的内部定义的类就是内部类,外部的类称为外部类。 2、 特点 是一个完整的、独立的类。 可以有属性、方法、构造、代码块。 编译之后会有独立的class文件,同样可以产生对象。 3、 class文件名 成员内部类 :外部类的类名 + $+内部类名。局部内部类:外部类的类名 + $+1+内部类名。(1表示局部内部类的顺序)4、 类型 4.1成员内部类 4原创 2016-04-24 19:41:48 · 305 阅读 · 0 评论 -
多态
一、概念相同的行为,不同的实现二、分类静态多态编译期即已知方法的执行效果(使用方法的重载实现)。动态多态编译期未知,运行期根据绑定不同的对象有不同的效果。(使用动态绑定和重写实现)三、转型技术当操作符两端的数据类型不一致的时候,就会发生转型。当大的数据往小的空间存放,必须进行强转。(向下转型)当小的数据往大的空间存放,自行类型转换。(向上转型)引用数据类型同样存在转型技术:转型的两类必须存在继承关系原创 2016-04-24 21:18:02 · 406 阅读 · 0 评论 -
程序控制流程
在java中使用条件语句和循环结构来确定控制流程。块(block)是指由一对大括号括起来的若干条简单的Java语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。但是不能在嵌套的两个块中声明同名的变量。1. 条件语句条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。if条件语句使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字...原创 2016-05-02 18:49:13 · 599 阅读 · 0 评论