![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
江南一棵树。
计算机专业 某著名大学工学硕士
喜欢历史,喜欢旅游。
七分江湖气,三分书生气。
展开
-
如何对 List集合进行排序
对 List集合进行排序我们可以采用这几种写法进行排序java8排序 ,Comparator comparable1.java8的list.sorted(Comparator.comparing())2.Comparator 比较器 要比较的对象本身没有比较能力 o1.age-o2.age (正序) o2.age-o1.age(倒序)通常 写法:1):Collections.sort(list, new Comparator() {@Overridepublic int com原创 2021-09-06 17:46:39 · 4134 阅读 · 0 评论 -
Java中成员变量,类变量,局部变量之间的区别
一、实例变量也叫对象变量、类成员变量;从属于类由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,能通过对象的引用来访问实例变量。但在Java多线程中,实例变量是多个线程共享资源,要注意同步访问时可能出现的问题。public class Demo { //以下都是实例变量(成员变量、对象变量) private String nameString; public int age; protected int priority; //实例方法 public String getNameS转载 2021-08-27 23:13:10 · 316 阅读 · 0 评论 -
HashMap和ConcurrentHashMap总结思考
1.背景知识:当集合要添加新的对象时,先调用这个对象的hashCode方法,得到对应的hashcode值,在算出Hash值,然后计算数组元素下表的位置。2.HashMap中如何计算hash值?如何计算数组元素下表位置?要计算HashMap中对应的数组下标,必然要进行获取哈希值,HashMap对key的哈希值做了离散处理对于HashMap中 key值的hash计算源码如下:static final int hash(Object key) { int h; return (key =原创 2021-08-26 10:32:42 · 169 阅读 · 0 评论 -
LocalDate/LocalDateTime/LocalTime/Date
package com.company;import java.time.*;import java.time.format.DateTimeFormatter;import java.util.Date;/** * @author xiesongzhuang1 * @Description TODO * @createTime 2021年08月20日 */public class test { public static final LocalTime ON_HOUR_TIM原创 2021-08-23 20:38:30 · 103 阅读 · 0 评论 -
Java8时间工具类
import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZoneOffset;import java.time.format.DateTimeFormatter;import java.util.Calendar;import java.util.Date;import org.apache.commo原创 2021-08-23 20:03:37 · 121 阅读 · 0 评论 -
profiles配置多环境
软件环境:在实践生产中,正规一点的可能有 开发环境,测试环境,预发环境,生产环境。而这些环境 的参数肯定都不一样换环境的时候,经常需要修改参数,参数一多,维护起来很麻烦,所以SpringBoot提供了通过profiles配置来达到多环境配置,不需要项目一上生产环境还是预发布 就改一堆配置文件。软件环境:application-dev(开发环境)application-test(测试环境)application-pre(预发环境)application-prod(生产环境)配置文件格式可以原创 2021-08-19 20:56:01 · 797 阅读 · 0 评论 -
异常的简介
异常的简介在Java中,异常就是Java在编译、运行或运行过程中出现的错误。程序错误分为三种:编译错误、运行时错误和逻辑错误编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这个也是新手在刚接触编程语言时经常遇到的问题。运行时错误是因为程序在执行时,运行环境发现了不能执行的操作。逻辑错误是因为程序没有按照预期的逻辑顺序执行。异常也就是指程序运行时发生错误,而异常处理就是对这些错误进行处理和控制。下面看一段代码:package com.yichang;p转载 2021-08-17 15:33:54 · 179 阅读 · 0 评论 -
深入浅出Java线程池
深入浅出线程池线程什么是线程线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。如何创建线程java中创建线程测试一下/**继承Thread类,重写run方法/class MyThread extends Thread {@Overridepublic void run() {System.out.println(“myThrea原创 2021-08-10 16:55:48 · 148 阅读 · 0 评论 -
Java代码规范
Java开发规范1.类名使用UpperCamelCase风格,必须遵循从驼峰形式正例:MarcoPolo/UserDo/XmlService2.方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵守驼峰形式首字母小写。正例:localValue/getHttpMessage()/inputUserId3.常量名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字 长正例:MAX_STOCK_COUNT4.包名统一使用小写,点分割符之间有且仅有一个自然原创 2021-08-09 21:53:41 · 171 阅读 · 0 评论 -
Java新特性的用法笔记
Java8新特性文章目录Java8新特性前言一.基本内容:二.Java8新特性的简介优点三.JAVA8学习1.lambda表达式的语法2.四大函数式 接口3.方法引用与构造器引用4.Stream API的使用5.并行流和串行流6、Optional的使用7、java8中允许接口有默认方法和静态方法系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言本文主要介绍Java8新特性以及使用用法。提示:以下是本篇文章正文内容,下面案例可供参考一.基本内容:1)lambd原创 2021-08-09 21:27:00 · 123 阅读 · 0 评论 -
Collections常用的一些方法
Collections.addAll(单值类型集合,元素1,元素2,元素3);Collections.sort(list集合);Collections.sort(list集合,比较器对象)Collections.reverse(list集合);让线程不安全的变成安全的: synchronizedListCollections.synchronizedList(list集合); Collections.synchornizedSet(set集合);Collections.synchro原创 2021-08-05 23:35:27 · 721 阅读 · 0 评论 -
Comparator 和Comparable的总结比较
一:基本介绍它们的区别有三点:1.存在包结构不同:java.lang.Comparable 语言基础包java.util.Comparator 工具包2.当中的抽象方法不同:Comparable compareTo(1)Comparator compare(1,2)最重要的是它们的语境 语义完全不同Comparable adj.形容词有能力去比较的Comparator n.名词比较专用的工具 比较器一个类实现了Comparable接口就代表这个类的对象是有比较排序的能力的可原创 2021-08-05 23:33:58 · 138 阅读 · 0 评论 -
lambda表达式
voucherNumInfoMap.putAll(certificateList.stream().collect(Collectors.toMap(Certificate::getCardNum, Function.identity(), (v1, v2) -> v2))); voucherBindListDTOList.forEach(info -> { Certificate certificate = voucherNumInfoMap.get(i原创 2021-08-02 16:34:05 · 117 阅读 · 0 评论 -
Java 如何实现多线程
import java.util.*;import java.util.concurrent.*;//并发包public class TestThreadPool{ public static void main(String[] args)throws Exception{ //执行器服务(服务员) es = 通过工具类的静态方法获得一个服务员 ExecutorService es = Executors.newFixedThreadPool(2);//可重用的线程池 //原创 2021-07-02 15:36:02 · 75 阅读 · 0 评论 -
两个线程交替打印1-100
/** * 类描述:两个线程交替打印 * @author :大树 * @version 1.0 * @date 2021/6/28 18:34 */public class testRunable { public static void main(String[] args){ TestThread t= new TestThread(); Thread t1=new Thread(t); Thread原创 2021-06-28 19:03:28 · 103 阅读 · 0 评论 -
Java 对象克隆
明确一个接口 Cloneable 接口,这个接口提供了一个安全的clone方法1.为什么要使用克隆方法?我们都知道一个包含对象引用的变量建立副本时会发生什么。原变量和副本都是同一个对象的引用,这说明,任何一个变量改变都会影响另一个变量。但是如果希望copy 一个新对象,他的初始状态与original相同,但是之后他们各自会有自己不同的状态,这种情况下就可以使用clone方法2.为什么要使用接口 Cloneable 接口,这个接口提供了一个安全的clone方法?因为clone方法是object的一个原创 2021-06-25 23:02:40 · 84 阅读 · 0 评论 -
Java方法参数
在程序设计语言中有关将参数传递给方法的一些术语按值调用(call by value):表示方法接收的是调用者的值按引用调用(call by reference)表示方法接收的是调用者提供的变量地址在Java语言中总是采用按值调用。也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给他的任何参数变量的内容。 public static void tripeValue(double x){ x=3*x; } double percent =10; tripleValue原创 2021-06-25 22:33:15 · 167 阅读 · 1 评论 -
JAVA中的HashMap用法解析
Map=>HashMapSortedMap==>TreeMap1.如何创建Map集合2.如何添加Map集合3.如何遍历Map集合4.Map集合常用的方法1.如何创建Map集合Map<String, Integer> map=new HashMap<>();2.如何添加元素一次添加一对: map.put("小翔",210); 一次添加另一个集合: map.putAll(另一个Map集合对象);3.如何遍历Map集合 keySet(原创 2021-06-20 18:40:46 · 191 阅读 · 0 评论 -
Spring框架知识总结(浅显易懂)
Spring的总结Spring 是一款优秀的开源框架 ,他解决的是业务逻辑层和其他各层的耦合问题谈起Spring必然离不开 IOC 和AOPIOC–控制反转 核心是DI(依赖注入)何为反转?依赖对象的创建和依赖关系的形成,以前是我们主动去new 一个对象,现在 我们把对象交给spring的IOC容器去管理,需要的时候只需注入即可Bean对象的创建三种方式1>无参构造2> 静态工厂 -> factory-method + class3> 非静态的实例工厂 ->原创 2021-06-16 15:40:04 · 228 阅读 · 1 评论 -
Java文件File
import java.io.*;public class TestFilter{ public static void main(String[] args){ //你知道c盘吗 c盘下有windows 你知道windows目录下有system32目录吗 //如何用程序求出system32目录当中所有dll文件的个数 File dir = new File("c:\\windows\\system32"); File[] fs = dir.listFiles(new DllFilter原创 2021-06-07 19:29:55 · 52 阅读 · 0 评论 -
单例模式的简单使用
作用:控制一个类型有且只有一个对象一、创建方法1.私有化构造方法,防止类体之外的别人创建对象2.创建一个静态的,私有的属于本类类型的对象3.创建一个公共的返回本类类型对象的方法代码示例:class Student{ private String name; private int age; public void setName(String name){ this.name = name; } public String getName(){ return name;原创 2021-06-07 10:15:34 · 225 阅读 · 0 评论 -
如何在WEB项目中优雅的使用日志
一:常见的日志框架Log4j、SLF4J、Logback、Log4j 21、为什什么需要在 Java 中打印⽇日志 ?在本地环境下,使用 System.out.println() 打印日志是没问题的,可以在控制台看到信息。但如果是在生产环境下的话, System.out.println() 就变得毫无用处了。2.常见的日志级别使用 Java ⽇日志的时候,⼀一定要注意日志的级别,比如常见的 DEBUG、INFO、WARN 和 ERROR。DEBUG 的级别最低,当需要打印调试信息的话,就用这原创 2020-11-14 16:44:43 · 871 阅读 · 0 评论 -
JAVA中涉及的时间日期转换问题全解
本文主要包含的有:SimpleDateFormat简介Date 转为StringString 转为Date时间戳与Date类型的相互转换java时间戳与unix时间戳的关系计算两个时间的差值DateTimeFormatter注:以下的方法中很多常量和方法我都没有提取出来,正式项目中还是建议大家封装在时间处理类中,规范化操作1.SimpleDateFormat的简介及使用/*** SimpleDateFormat* 一个与语言环境相关的格式化日期和分析日期的工具类。* 利用该类可以将原创 2020-10-28 22:52:14 · 565 阅读 · 2 评论 -
JSON的入门介绍学习
JSON封装数据的几种方式package com.feture.test;import com.feture.po.Game;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import net.sf.json.JsonConfig;import java.util.*;public class TestJson { public static void main(String[] args) {原创 2020-10-26 22:01:26 · 193 阅读 · 0 评论 -
Java File常用方法个人总结
构造方法:new File(String 路径)new File(String 父目录,String 文件名)new File(File 父目录对象,String 文件名)路径 : 相对路径 or 绝对路径只是内存中的一个路径,未真实创建,用来读取一个文件、写一个文件,一般在流输出时会自动创建该文件。一等优先级方法:exists():判断File对象指代的文件或者目录是否存在, File对象既能代表已经存在的文件也能代表根本不存在的文件,我们就需要有方法来判断究竟是否存在isFile():原创 2020-10-17 20:20:21 · 361 阅读 · 0 评论 -
Java IO流 个人总结(常用到的)
Java IO流 个人总结//字节流到字符流的转换 桥转换器可以指定编码else if(("focus.txt").equals(fs.getName().toLowerCase())){ BufferedReader bur=new BufferedReader(new InputStreamReader(new FileInputStream(fs),"gbk")); BufferedWriter buw=new B原创 2020-10-17 18:01:39 · 123 阅读 · 0 评论 -
如何从零搭建JAVA开发环境
如何从零搭建JAVA开发环境一、基本需要:1、JDK 安装 配置环境变量2、Tomcat 下载安装3、IDEA/Eclipse4、Maven 下载安装 配置环境变量 更改Setting.xml文件 与IDEA/Eclipse整合5、SVN/Git6、Navicat7、Postman二、拓展需要:8、Linux 环境:1)shell2) xftp3)VM虚拟机 centos系统9、chrome浏览器10、NotePad++/sublime...原创 2020-06-28 15:10:14 · 236 阅读 · 0 评论 -
Java8新特性Stream 和lambda 表达式
Java8新特性Stream 和lambda 表达式一:Java8新特性接口默认方法,lambda 表达式 ,函数式接口,Date API 等特性Stream作为java8 的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效,遍历的聚合操作或者大批量的数据操作Stream原理:将要处理的元素看做一种流,流在管道中传输,并且可以在管道的节点上处理,包...原创 2020-01-14 09:46:43 · 178 阅读 · 0 评论 -
Java开发中优雅的判空方法
java中判空方法一:java判断字符串是否为空的方法总结方法一:开发中最常用的方法,看起来也比较高大上: if(StringUtils.isNotBlank(str))//判断字符串不为空 或if(StringUtils.isBlank(str))//判断字符串为空2方法二: 比价简单直接的方法 if(s == null ||"".equals(s));1方法三:...原创 2020-01-10 17:54:00 · 4724 阅读 · 0 评论 -
Java数组用法总结
java 数组总结数组定义:一组相关(相同)类型的变量的集合并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型。1:数组定义的三种方式第一:数据类型[] 数组名称=new 数据类型[长度]例: int[] data= new int[10]int[0]=1//动态初始化int[1]=3int[2]=4第二:静态初始化数据类型 数组名称={值,值,值…}...原创 2019-12-12 20:55:57 · 169 阅读 · 0 评论