java 基础
用心去追梦
这个作者很懒,什么都没留下…
展开
-
json数组字符串转list集合
json字符串处理原创 2022-11-19 18:21:34 · 16143 阅读 · 0 评论 -
Java程序包不存在问题的解决办法
idea 操作原创 2022-11-10 20:08:45 · 25284 阅读 · 10 评论 -
用ImmutableMap来替换大量if/else判断
ImmutableMap用法原创 2022-11-06 22:04:53 · 188 阅读 · 0 评论 -
JSONArray遍历处理
json原创 2022-11-06 21:56:10 · 8747 阅读 · 0 评论 -
统一码介绍
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。...原创 2022-04-04 15:11:42 · 595 阅读 · 0 评论 -
05APR2022 日期格式这样的怎么转换成日期?
SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyy hhmm", Locale.US);原创 2022-04-01 17:51:26 · 1384 阅读 · 0 评论 -
使用vant时 tab栏中出现 van-tabs怎么省略号怎么解决
使用vant时 tab栏中出现 van-tabs怎么省略号怎么解决:ellipsis=“false”<template> <div> <van-tabs v-model="active" @click="tabHandler" :ellipsis="false" :border="false" > <van-tab v-for="(tabname,idx) in tabList" :key原创 2022-03-28 14:39:43 · 1844 阅读 · 0 评论 -
IntelliJ IDEA版本和junit版本不适配
原因:IntelliJ IDEA版本和junit版本不适配解决:1.项目的pom.xml文件中添加如下依赖:<dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-launcher</artifactId> <scope>test</scope></dependency>...原创 2022-03-22 13:59:52 · 947 阅读 · 0 评论 -
js对象与字符串相互转换
js对象与字符串相互转换对象转为字符串const obj = { id: 0, name: '张三', age: 12}const objToStr = JSON.stringify(obj)console.log('obj:', obj)console.log('objToStr:', objToStr)json字符串转为对象const str = '{"id":0,"name":"张三","age":12}'const strToObj = JS原创 2022-03-20 16:57:37 · 1262 阅读 · 0 评论 -
js base_64 解密
这里写自定义目录标题s base_64 解密s base_64 解密console.log('接口返回------',res.data); var decryptStr = new Buffer(res.data.payload_base_64byte, 'base64').toString('utf8') console.log(decryptStr );原创 2022-03-20 16:17:53 · 794 阅读 · 0 评论 -
java8 LocalDate 日期比较大小
java8 LocalDate 日期比较大小/** * 比较第一个日期是否大于第二个日期 * @param firstDate 第一个日期 * @param secondDate 第二个日期 * @return true-大于;false-不大于 */public boolean localDateIsBefore(LocalDate firstDate, LocalDate secondDate) { return firstDate.isBefore(secondDate);} /原创 2022-03-19 16:55:34 · 1902 阅读 · 0 评论 -
LocalDate 两个日期比较大小
LocalDate 两个日期比较大小 LocalDate today = LocalDate.now(); System.out.println("LocalDate.now() = " + today); boolean a = LocalDate.of(2020, 06, 10).isAfter(LocalDate.now()); System.out.println(a);原创 2022-03-18 16:30:19 · 9884 阅读 · 0 评论 -
Java实现List中某个对象属性中的字符串参数首字母进行排序
public static void main(String[] args) { //数组 中文首字母排序 // Collator 类是用来执行区分语言环境的 String 比较的,这里选择使用CHINA Comparator comparator = Collator.getInstance(Locale.CHINA); String[] arrStrings = {"乔峰", "郭靖", "杨过", "张无忌", "韦小宝"};原创 2022-03-15 16:40:46 · 2285 阅读 · 0 评论 -
Mysql生产指定时间段随机日期函数
Mysql生产指定时间段随机日期函数UPDATE basicsale_b2b2c.basic_customerSET registerDate = ( from_unixtime( unix_timestamp('2017-01-01') + floor( rand() * ( unix_timestamp('2019-03-18') - unix_timestamp('2017-01-01') + 1原创 2022-03-11 14:54:13 · 2375 阅读 · 0 评论 -
java8判断对象是否为空新写法
@Testpublic void testOptional() { String strArr[] = {"sada", null, ""}; for (String s : strArr) { System.out.println(Optional.ofNullable(s).orElse("").length()); }}原创 2022-03-11 13:43:30 · 615 阅读 · 0 评论 -
Java将Long类型转换为时分秒
public static String getTime(Long time) { String timeStr=""; if (time==null){ return null; } //时 Long hour = time / 60 / 60; //分 Long minutes = time / 60 % 60; //秒 Long remainingSeconds = time % 60; //判断时分秒是否小于10…… if (hour <..原创 2021-11-22 17:07:57 · 5824 阅读 · 0 评论 -
Spring+MyBatis 多数据源配置和切换
两台 MySQL 数据库(属于 master-slave 主从关系),基于 Java8,Spring4,MyBatis3.2 环境。maven 依赖配置<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.5.RELEASE原创 2021-11-17 08:11:03 · 265 阅读 · 0 评论 -
spring boot jpa级联保存
spring boot jpa级联保存CascadeTypeoneToMany关系one的一方中加@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST) @JoinColumn(name = "contract_id", referencedColumnName = "id")原创 2021-11-16 23:06:21 · 508 阅读 · 0 评论 -
安装redis
安装redis去官网下载压缩包:https://redis.io/download 或者通过 redis 官网提供的在线 redis 环境。安装依赖、编译、安装1[root@instance-lynj0v9k-19 redis-5.0.9]# yum install gcc-c++2[root@instance-lynj0v9k-19 redis-5.0.9]# make3[root@instance-lynj0v9k-19 redis-5.0.9]# make install我们自己安装的程原创 2021-10-27 17:46:08 · 81 阅读 · 0 评论 -
Redis提供的持久化机制(RDB和AOF)
Redis提供的持久化机制Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。近日,Redis的作者在博客中写到,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。文章主要包含三个方面:Redis持久化是如何工作的、这一性能是否可靠以及和其它类型的数据库比较。以下为文章内容:一、Redis持久化是如何工作的?什原创 2021-10-25 20:46:34 · 173 阅读 · 0 评论 -
Java线程池的拒绝策略
一、简介jdk1.5 版本新增了JUC并发编程包,极大的简化了传统的多线程开发。前面文章中介绍了线程池的使用,链接地址:https://www.cnblogs.com/eric-fang/p/9004020.htmlJava线程池,是典型的池化思想的产物,类似的还有数据库的连接池、redis的连接池等。池化思想,就是在初始的时候去申请资源,创建一批可使用的连接,这样在使用的时候,就不必再进行创建连接信息的开销了。举个生活中鲜明的例子,在去著名洋快餐某基或者某劳的时候,配餐人员是从一个中间的保温箱中直接取原创 2021-10-22 17:59:58 · 999 阅读 · 0 评论 -
java通过反射获取类名、属性名称以及@Table注解上的表名称
/** * 通过获取类上的@Table注解获取表名称 * * @param clazz * @return */ public static Map<String, String> getTableName(Class<?> clazz) { Map<String, String> map = new ConcurrentHashMap<>(); Table ann...原创 2021-08-31 18:13:39 · 763 阅读 · 0 评论 -
CAP(AP模式/CP模式)
Nacos 临时实例是AP模式Nacos 持久实例是CP模式Zookeeper CP模式Eureka AP模式CAP原则:C(Consistency):一致性A(Availablitity):可用性P(Partition tolerance):分区容错性BASE原则:BA:基本可用(Basically Available)S:软状态(Soft State)E:最终一致性(Eventual Consistency)CAP原则是三选二;BASE原则是CAP原则的折中,C,A,P三个都要原创 2021-08-25 20:05:50 · 5655 阅读 · 0 评论 -
ORG.SPRINGFRAMEWORK.HTTP.CONVERTER.HTTPMESSAGENOTREADABLEEXCEPTION: COULD NOT READ JSON: UNRECOGNIZE
post请求的时候,参数多了之后接口请求报错。@JsonIgnoreProperties(ignoreUnknown = true)情况原创 2021-08-19 23:29:26 · 167 阅读 · 0 评论 -
数组和链表的理解,及各自的优缺点
链表链表是一种常见的数据组织形式,它采用动态分配内存的形式实现。需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费。一、 从逻辑结构来看数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)二、从内存存储来看(静态)数组从栈中分配空间,原创 2021-08-06 17:31:11 · 378 阅读 · 0 评论 -
什么是分布式事务以及有哪些解决方案?
1、什么是分布式事务?答:指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、分布式事务产生的原因?2.1 数据库分库分表 当数据库单表数据达到千万级别,就要考虑分库分表,那么就会从原来的一个数据库变成多个数据库。例如如果一个操作即操作了01库,又操作了02库,而且又要保证数据的一致性,那么就要用到分布式事务。2.2 应用SOA化 所谓的SOA化,就是原创 2021-08-04 21:26:58 · 853 阅读 · 0 评论 -
解决 org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does no
1.getCurrentSession()是必须提交事务的。故使用getSessionFactory().getCurrentSession()时,这个方法一定是要配置声明式事务管理。2.openSession()恰恰是与以上的方法想法,它不需要提交事务。但是他的资源必须手动关闭。相对以上两点,解决方法有1.获得session时使用openSession()。2.若用到getCurrenctSession(),需在sessionFactory中配置(当然也可以使用注解,在 service类加上事务@原创 2021-08-04 16:48:57 · 443 阅读 · 0 评论 -
SpringBoot配置嵌入式Servlet容器
SpringBoot默认使用的是Tomcat作为嵌入式的Servlet容器,那么肯定会和外置的Tomcat有区别,那么就这些区别来谈一谈SpringBoot中对于容器的一些配置操作如何定制和修改Servlet容器的相关配置在内置的Tomcat中,不再有web.xml文件可以供我们修改,那么我们应该怎样去修改Servlet容器相关的配置呢?在SpringBoot中有两种方式可供选择,一种是在配置文件中修改,还有一种是通过配置类的方式去修改配置文件中修改(具体修改的参数可以查看ServerProperti原创 2021-07-24 22:54:37 · 394 阅读 · 3 评论 -
SpringBoot 源码解析 (一)----- SpringBoot核心原理入门
目录Spring Boot 概述什么是 Spring Boot使用 Spring Boot 有什么好处Spring Boot HelloWorld导入依赖spring boot相关的依赖编写主程序编写Controller、Service运行主程序测试Hello World探究POM文件启动器主程序类(主入口类)正文回到顶部Spring Boot 概述Build Anything with Spring Boot:Spring Boot is the starting poin原创 2021-07-24 22:17:09 · 273 阅读 · 5 评论 -
hashmap 判断key是否存在
public class TestMapKey {public static void main(String[] args) {Map<Integer, String> map = new HashMap<Integer, String>();map.put(1, null);map.put(2, “马先生”);System.out.println(“结果” + map.containsValue(“马先生”));}}...原创 2021-07-24 15:01:56 · 2352 阅读 · 2 评论 -
关于synchronize与lock的区别
原创 2021-07-15 11:25:17 · 82 阅读 · 0 评论 -
java读取excel文件内容
1.导入依赖JAR包 org.jxls jxls-jexcel 1.0.62.创建工作簿并载入excel文件流jxl.Workbook wb =null;InputStream is = new FileInputStream("D://G201.xls");wb = Workbook.getWorkbook(is);3.通过索引或者名称获取Sheetwb.getSheet(0);4.通过行号获取Cellsheet.getRow(j)5.示例代码展示复制代码原创 2021-07-07 17:02:18 · 203 阅读 · 0 评论 -
mysql 常见面试题
一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。2、数据记录本身被存于主索引(一颗B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一个内存页原创 2021-07-02 22:43:21 · 192 阅读 · 0 评论 -
SP Session
JSP SessionHTTP是无状态协议,这意味着每次客户端检索网页时,都要单独打开一个服务器连接,因此服务器不会记录下先前客户端请求的任何信息。有三种方法来维持客户端与服务器的会话:Cookies网络服务器可以指定一个唯一的session ID作为cookie来代表每个客户端,用来识别这个客户端接下来的请求。这可能不是一种有效的方式,因为很多时候浏览器并不一定支持cookie,所以我们不建议使用这种方法来维持会话。隐藏表单域一个网络服务器可以发送一个隐藏的HTML表单域和一个唯一的sess转载 2021-07-02 16:35:49 · 112 阅读 · 0 评论 -
HashMap 的设置值,取值,遍历等
Map<String, String>map = new HashMap<String,String>();map.put(“code”, employee.getMarkCode());map.put(“name”, employee.getName());map.put(“mobile”, employee.getMobile());session.setAttribute(“account”, map);页面原创 2021-07-02 13:38:36 · 316 阅读 · 0 评论 -
wait/notify/notifyAll在Object类中
wait/notify/notifyAll在Object类中因为我们在使用synchronized锁 对象锁可以是任意对象,所以wait/notify/notifyAll需要放在Object类中。wait/notify/简单的用法public class Thread03 extends Thread {@Overridepublic void run() {try {synchronized (this) {System.out.println(Thread.currentThread()原创 2021-07-02 11:39:04 · 262 阅读 · 0 评论 -
等待/通知机制
等待/通知的相关方法是任意Java对象都具备的,因为这些方法被定义在所有对象的超类java.lang.Object上,方法如下:1.notify() :通知一个在对象上等待的线程,使其从main()方法返回,而返回的前提是该线程获取到了对象的锁2.notifyAll():通知所有等待在该对象的线程3.wait():调用该方法的线程进入WAITING状态,只有等待其他线程的通知或者被中断,才会返回。需要注意调用wait()方法后,会释放对象的锁 。Exception in thread “Thread原创 2021-07-01 18:14:01 · 62 阅读 · 0 评论 -
多线程综合小案例
手写Callable与FutureTask模式可以基于Callable+FutureTask可以实现异步线程执行 带返回结果。LockSupport实现方式定义Callable+FutureTaskpublic interface MayiktCallable {V call();}public class MayiktFutureTask implements Runnable {private MayiktCallable mayiktCallable;private Thread c原创 2021-07-01 18:12:38 · 59 阅读 · 0 评论 -
Lock锁的基本使用
在jdk1.5后新增的ReentrantLock类同样可达到此效果,且在使用上比synchronized更加灵活相关API:使用ReentrantLock实现同步lock()方法:上锁unlock()方法:释放锁使用Condition实现等待/通知 类似于 wait()和notify()及notifyAll()Lock锁底层基于AQS实现,需要自己封装实现自旋锁。Synchronized —属于JDK 关键字 底层属于 C++虚拟机底层实现Lock锁底层基于AQS实现-- 变为重量级S原创 2021-07-01 18:11:04 · 3433 阅读 · 0 评论 -
正确的线程中止-标志位
在上方代码逻辑中,增加一个判断,用来控制线程执行的中止。public class Thread07 extends Thread {private volatile boolean isFlag = true;@Overridepublic void run() { while (isFlag) { }}public static void main(String[] args) { Thread07 thread07 = new Thread07(); th原创 2021-07-01 18:09:10 · 147 阅读 · 0 评论