java
文章平均质量分 81
Luck_ZZ
这个作者很懒,什么都没留下…
展开
-
Java日志(slf4j+logback)及打印彩色日志
一、maven依赖在pom文件增加slf4j+logback依赖<!-- 版本配置 --><properties> <slf4j.version>1.7.21</slf4j.version> <logback.version>1.1.7</logback.version></properties><dependencies> <!-- slf4j依赖包 -->原创 2020-10-15 19:42:21 · 7365 阅读 · 1 评论 -
使用HttpClient进行GET、POST、PUT、DELETE操作
一、maven依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version></parent><properties> <thymelea原创 2020-08-31 22:03:36 · 776 阅读 · 0 评论 -
请求的媒体类型
form-datax-www-form-urlencoded(待更新)原创 2020-08-31 22:02:40 · 255 阅读 · 0 评论 -
Java与MySQL时区
中国其实也实行过夏令时,(1992年之后中国已经没有再实行过夏令时了),当实行夏令时,中国标准时间的时区偏移量就是+09:00,当非夏令时,中国标准时间的时区偏移量就是+08:00。在Java中,CST表示的是:中央标准时间(美国标准时间)(注:Java 的 Date 中的CST是表示的中国标准时间。Java 系统时区:Asia/Shanghai(东8区)MySQL 全局时区:time_zone=+08:00。早期基准是:GMT(格林尼治标准时间)后来基准是:UTC(协调世界时)原创 2020-06-30 21:23:31 · 3200 阅读 · 0 评论 -
Java日志(slf4j+log4j2)
一、日志接口与实现日志接口有:JCL、SLFJ 1.Apache Commons Logging (JCL)jcl为每一种日志实现采用了一个适配器,具体采用哪个是根据动态的根据指定顺序查找classpath是否存在相应的实现,如果一个应用当中有多个classLoader,限制了jcl的正常使用2.Simple Logging Facade for Java (SLFJ 简单日志...原创 2019-09-11 13:11:06 · 542 阅读 · 0 评论 -
Java的SPI机制及AutoService
一、SPI机制SPI:Service Provider Interface,是一种服务发现机制它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类,模块之间基于接口编程,实现可拔插二、栗子1.定义接口package com.zz.spi;public interface SPIService { void execute();}2.实现类SPIImpl1.javapackage com.zz.spi;原创 2020-03-06 09:06:52 · 1231 阅读 · 0 评论 -
Java内置HttpServer的使用
一、相关类1.HttpServer表示一个服务器实例,需要绑定一个IP地址和端口号2.HttpContext服务器监听器的上下文3.HttpHandler上下文对应的http请求处理器4.HttpExchange监听器回调时传入的参数,封装了http请求和响应的所有数据操作二、使用public class MyServer { public st...原创 2020-02-09 18:14:42 · 1004 阅读 · 0 评论 -
Jackson的ObjectMapper使用
一、maven依赖<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.1</version></dependen...原创 2020-01-20 08:48:58 · 1372 阅读 · 0 评论 -
Java的Introspector(内省)及BeanUtils工具包的使用
一、内省与反射1.Introspector(内省)内省是基于反射实现的,主要用来操作JavaBean,通过内省可以很方便的动态获取JavaBean的属性、set/get方法2.reflect(反射)反射就是运行时获取一个类的所有信息,可以获取.class的任何定义信息构造器、成员变量、成员方法public class Person { private String u...原创 2020-01-18 21:41:14 · 626 阅读 · 0 评论 -
Java的Arrays和Collections常用方法
一、Arrays1.常用方法public static boolean equals(int[] a, int[] a2) 判断两个数组是否相等 public static String toString(int[] a) 输出数组信息 public static void fill(int[] a, int val) ...原创 2020-01-11 21:43:28 · 472 阅读 · 0 评论 -
Java正则表达式
一、Pattern与Matcher的使用Pattern类的作用在于编译正则表达式后创建一个匹配模式Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配@Testpublic void test01() { boolean isMatcher = Pattern.matches("\\d", "1"); System.out.println(isM...原创 2020-01-11 17:42:48 · 213 阅读 · 0 评论 -
Java自然排序与定制排序
一、自然排序自然排序:类实现了java.lang.Comparable接口,重写compareTo()的规则如果当前对象this大于形参对象obj,则返回正整数;如果当前对象this小于形参对象obj,则返回负整数;如果当前对象this等于参数对象obj,则返回零。1.Person类public class Person implements Comparable<Pers...原创 2020-01-10 20:25:57 · 2606 阅读 · 2 评论 -
Java8 Stream的使用
一、概述Stream 关注的是对数据的运算,与CPU打交道;集合关注的是数据的存储,与内存打交道Stream自己不会存储数据 Stream不会改变源数据,相反,他们会返回一个持有结果的新Stream Stream操作是延迟执行的,这意味着他们会等到需要结果的时候才执行步骤:创建Stream,一个数据源(如:集合,数组),获取一个流 中间操作,一个中间操作链,对数据源的数据进行处...原创 2020-01-01 19:08:21 · 193 阅读 · 0 评论 -
Java泛型
一、泛型泛型是JDK5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。二、泛型结构泛型类、泛型接口、泛型方法public class Order<T> {// 类的内部结构可以使用类的泛型 private String orderNam...原创 2019-10-26 21:45:50 · 143 阅读 · 0 评论 -
Java中Math.ceil()、Math.floor()、Math.round()的区别
1、Math.ceil()ceil表示“天花板”,向上取整;相当于水平数轴,向左取整Math.ceil(2.6); //3.0 ceil天花板 水平数轴向左取整Math.ceil(-2.6); //-2.0 ceil天花板 水平数轴向左取整2、Math.floor()floor表示“地板”,向下取整;相当于水平数轴,向右取整Math.floor(2....原创 2019-10-05 18:06:09 · 1746 阅读 · 1 评论 -
命令行打jar包及使用
一、编写java文件Test1.javapackage com.test1;public class Test1{ public void display(){ System.out.println("This is test1"); } }Test2.javapackage com.test2;public class Test2{ public voi...原创 2019-08-31 18:02:51 · 5749 阅读 · 0 评论 -
Java8 Lambda表达式
一、lambda表达式函数式接口:如果一个接口中,只声明一个抽象方法,则此接口就称为函数式接口lambda表达式的本质是,作为函数式接口的实例二、lambda格式例如,对Comparator接口的compare()方法的实现: public void test(){ Comparator<Integer> com1 = new Compar...原创 2019-08-11 18:21:29 · 185 阅读 · 0 评论 -
Java类加载器及自定义类加载器
一、类加载器父亲委托机制Java类加载器采用父亲委托机制,先尝试用父加载器加载,父加载器无法加载,则此加载器加载,注意,此父加载器与子加载器并非继承关系,而是指定的关系。从ClassLoader类loadClass()方法的源码,可以看出父亲委托机制的思想的实现。二、类加载器分类(1)根(Bootstrap)类加载器:根类加载器的实现依赖于底层操作系统,并没有继承java....原创 2019-08-10 21:09:50 · 1517 阅读 · 0 评论 -
Java Enum和String及int的相互转化
一、定义性别枚举枚举(enum),是指一个经过排序的、被打包成一个单一实体的项列表。使用枚举增加程序可读性、降低耦合性。/** * 性别枚举 */public enum Gender { male("男"),female("女"); private String name; private Gender(String name) { this.na...原创 2018-04-18 21:47:48 · 36902 阅读 · 0 评论 -
Java反射使用
一、反射介绍在Java运行时环境中,对于任意一个类,可以知道这个类有哪些属性和方法。对于任意一个对象,可以调用它的任意一个方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言习得反射(Reflection)机制。一般而言,当用户使用一个类的时候,应该先知道这个类,然后实例化对象;反射是通过对象找到类。二、获得Class对象定义Demo类:package c...原创 2018-04-21 12:31:33 · 3182 阅读 · 0 评论 -
Java子类继承父类构造器
一、研究问题1.子类如何继承父类的构造器?2.子类与父类构造器执行顺序?二、创建父类创建父类Animal,有两个构造器class Animal{ private Integer high; public Animal() { System.out.println("Animal()"); } public Animal(Integer high)...原创 2018-05-04 11:16:26 · 9754 阅读 · 3 评论 -
Java Socket实现基于BIO的TCP通信
一、BIOBIO,即同步并阻塞。服务端会在ServerSocket对象的accept方法发生阻塞,当有连接进入的时候,才能继续往下执行;读取数据,调用read方法时,也会发生阻塞。二、服务端public class BIOServer { public static void main(String[] args) { try { o...原创 2019-07-12 19:24:18 · 511 阅读 · 0 评论 -
Java属性的继承
Java方法重写是子类重写父类同名的方法,子类方法覆盖了父类的方法。而对于属性,子类不会覆盖父类同名的属性。如果子类没有定义属性,子类会继承最近父类的属性。如果创建子类对象后,父类和子类对象都会保存一份自己的属性,子类对象引用向上转型为父类对象引用,父类对象引用调用的是子类重写的方法,调用的属性仍然是父类的属性。class Parent{ public String nam...原创 2019-07-09 20:36:34 · 5662 阅读 · 0 评论 -
Java Socket实现基于NIO的TCP通信
一、NIO的引入对于BIO通信时,服务端ServerSocket会在accept方法,和read方法发生堵塞,导致别的请求无法进入,当然可以使用多线程处理,如果请求很多,就会有很多线程,消耗太大。NIO服务端ServerSocketChannel设置为非阻塞,把通道注册到选择器Selector上,多个客户端请求,都注册到选择器Selector上,由选择器轮询已经准备好的通道进行处理。二、J...原创 2019-07-13 13:06:07 · 2051 阅读 · 1 评论 -
Java创建线程三种方式
一、继承Thread类继承Thread类,重写run()方法。调用对象start()方法,可启动线程,线程会执行run()方法。//继承Thread,重写run()方法class MyThread extends Thread{ @Override public void run() { for(int i = 0; i < 10; i++){...原创 2019-06-29 19:56:55 · 243 阅读 · 0 评论 -
Java线程同步
一、问题引入要实现三个线程,对变量count执行++操作,每个线程加完之后,输出count的值class MyRunnable implements Runnable{ private int count = 0; @Override public void run() { addCount(); } private void...原创 2019-06-30 13:08:03 · 237 阅读 · 0 评论 -
Java IO流使用总结
一、字节输入输出流、字符输入输出流FileInputStream:文件字节输入流、FileOutputStream:文件字节输出流、FileRead:文本字符输入流、FileWriter:文件字符输出流。读写非文本文件(图片、视频等),用字节输入输出流;读写文本文件,用字符输入输出流。如果使用字节流处理中文字符文件,输出到控制台可能会出现乱码,此时可以用转换流解决。复制图片,从图片a....原创 2019-07-07 14:00:46 · 266 阅读 · 0 评论 -
Java Socket实现UDP通信
一、UDPTCP是面向连接的可靠传输协议,接受方和发送方两个Socket必须建立连接,才能发送数据。UDP是一种无连接协议,数据报中包含源地址和目的地址,因此无需双方建立连接。二、服务端服务端创建DatagramSocket,并绑定端口,使用DatagramPacket接收数据报。public class UDPServer { public static void...原创 2019-07-16 17:20:02 · 1098 阅读 · 0 评论 -
Java组播
一、服务端public class MulticastServer { public static void main(String[] args) throws IOException, InterruptedException {// 组播地址D类Ip地址,地址段224.0.0.0 - 239.255.255.255 InetSocketAddr...原创 2019-07-16 17:56:30 · 242 阅读 · 0 评论 -
Java中的Properties读取和写入properties及xml文件
一、PropertiesProperties是Hashtable的子类,Hashtable实现了Map。该类用于处理属性文件,key和value都是String类型。二、读取properties文件a.properties文件:#表示注释Java代码: public void loadProperties() throws IOException {// ...原创 2019-08-03 16:38:12 · 1575 阅读 · 0 评论 -
JavaBean与XML相互转换
一、JavaBean注解1. @XmlRootElement类级别注解,name属性用于指定生成元素的名字,若不指定,默认使用类名小写作为元素名//@XmlRootElement(name="mystudent")@XmlRootElementpublic class Student {}对应xml:<student></student>...原创 2019-08-04 09:10:34 · 5213 阅读 · 1 评论 -
Java中的wait()、notify()和notifyAll()方法
一、wait()、notify()和notifyAll()方法wait():当前线程进入阻塞状态,并释放同步锁notify():唤醒被wait的一个线程,如果多个线程被wait,就会唤醒优先级最高的那个线程notifyAll():唤醒所有被wait的方法这三个方法是Object类的方法;必须使用在同步代码块中或同步方法中;调用者必须是同步代码块或同步方法的同步监视器。因为同步监...原创 2019-07-27 19:28:44 · 442 阅读 · 0 评论 -
Java类的加载、连接、初始化和卸载
一、加载加载是查找并加载类的二进制数据把类的.class文件中的二进制数据读入到内存中,把它放在运行时数据区的方法区中,然后在堆区创建一个Class对象,用于封装类在方法区内的数据结构。Class对象封装了类在方法区内的数据结构,并且向Java程序提供访问类在方法区的数据结构接口。Java程序 - - - -(调用Class对象方法)- - - - > 堆中:描述Dog类的C...原创 2019-08-10 13:24:36 · 452 阅读 · 0 评论 -
Java元注解和自定义注解及注解的使用
一、@Documented@Documented注解表明这个注解会被javadoc之类工具记录,即注解类型信息也会被包括在生成文档中。默认情况下,javadoc是不包括注解的。二、@Target@Target注解用于设定注解使用范围 1.@Target(ElementType.TYPE) //接口、类、枚举、注解2.@Target(ElementType.FIELD) //字段、枚举的常量3.@T...原创 2018-02-11 14:32:02 · 1443 阅读 · 1 评论