
Java后台
java基础、java后台相关
西京刀客
这个作者很懒,什么都没留下…
-
原创 MySQL varchar与char有什么区别?
文章目录MySQL varchar与char有什么区别?MySQL varchar与char有什么区别?定长和变长char 表示定长,长度固定,varchar表示变长,即长度可变。char如果插入的长度小于定义长度时,则用空格填充;varchar小于定义长度时,还是按实际长度存储,插入多长就存多长。因为其长度固定,char的存取速度还是要比varchar要快得多,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以会占据多余的空间,可谓是以空间换取时间效率。var2021-03-24 14:49:204
0
-
原创 spring boot- JdbcTemplate、NamedParameterJdbcTemplate基本使用(批量更新插入)
文章目录JdbcTemplate基本使用SpringBoot2.X + JDBCTemPlate批量插入数据参考JdbcTemplate基本使用 JDBC已经能够满足大部分用户最基本的需求,但是在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤。JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。他帮助2021-03-18 19:48:1244
0
-
原创 mysql replace into 与 insert into on duplicate key update、insert ignore、insert into
文章目录replace into 与 insert into on duplicate key update 的使用和不同点replace into的用法以及与inset into、insert ignore的区别replace into 与 insert into on duplicate key update 的使用和不同点mysql 中 replace into 与 insert into on duplicate key update 的使用和不同点参考URL: cnblogs.com/jkk2021-03-17 20:11:4840
0
-
原创 JAVA语言-什么是浅拷贝和深拷贝、BeanUtils拷贝对象
文章目录什么是浅拷贝和深拷贝阿里Java开发规约为什么不建议使用Apache BeanUtils拷贝对象参考什么是浅拷贝和深拷贝Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b;Java中的对象拷贝主要分为:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)。**任何变成语言中,其2021-03-17 09:53:3336
0
-
原创 JAVA语言-HashMap的最大容量为什么是2的30次方(1左移30)?/ java中整型数据存储方式
HashMap的最大容量为什么是2的30次方(1左移30)?原文链接:https://blog.csdn.net/saywhat_sayhello/article/details/83120324在阅读hashmap的源码过程中,我看到了关于hashmap最大容量的限制,并产生了一丝疑问。static final int MAXIMUM_CAPACITY = 1 << 30;为啥最大容量是 1 << 30?首先是 << 这个操作符必须要理解,在一般情况下 12021-03-15 10:55:2655
0
-
原创 java-JVM 角度说进程和线程之间的关系
Java 并发基础知识Java 并发基础知识参考URL: https://www.cnblogs.com/reformdai/p/11039843.html从 JVM 角度说进程和线程之间的关系一个进程可以有多个线程,多个线程共享进程的堆和方法区(JDK 1.8 之后的元空间)资源。但是每个线程有自己的程序计数器、虚拟机栈和本地方法栈。(1) 程序计数器为什么是私有的?首先明确程序计数器的作用:字节码解释器通过改变程序计数器来一次读取指令,从而实现代码的流程控制。如:顺序执行、选择、循环、异2021-03-10 10:24:2729
0
-
原创 运行java maven项目提醒 -SNAPSHOT.jar中没有主清单属性(maven项目指定主类)
运行java maven项目提醒 -SNAPSHOT.jar中没有主清单属性问题描述在运行使用maven打包的项目之后,运行项目发现主类没有找到。提示XXX–1.0-SNAPSHOT.jar中没有主清单属性。问题原因maven在打包时没有配置主类。解决方案如果您使用的是Springboot框架,那么只需要在pom.xml中添加如下配置,会自动检测主类。<build> <plugins> <plugin> &2021-03-06 16:14:00325
0
-
原创 什么是WebAssembly(Wasm)?
文章目录WebAssembly是什么?WebAssembly和JavaScriptWebAssembly是什么?WASM是什么?带你了解WebAssembly的前世今生参考URL: http://www.mabiji.com/webassembly/wasm.htmlWebAssembly是什么?WebAssembly即WASM, WebAssembly是一种新的编码格式并且可以在浏览器中运行,WASM可以与JavaScript并存,WASM更类似一种低级的汇编语言。WebAssembly(又名w2021-03-04 14:12:15719
0
-
原创 Linux、Windows下安裝nodejs
Linux下安裝nodejsNode.js是一个Javascript运行环境。nodejs 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。nodejs能做web开发,REST开发,小程序开发等等,它就是使用JavaScript进行开发的。手动二进制包的安装方法官网下载nodejshttps://nodejs.org/zh-cn/download/利用nvm安装nvm,即是2021-03-03 10:50:3231
0
-
原创 java常见编程练习hw二(中等难度)
文章目录1. 进制转换[推荐、简单]思路:java内置 decode方法,将 String 解码为 Integer【不推荐】思路2,自己计算2. 质数因子思路1: 设定i=2,i一直递增,当N除以i余数为0的时候,N设定为N/i3. 合并表记录思路:使用有序的TreeMap4. 提取不重复的整数思路1 创建一个长度为10的数组5. 字符个数统计HashSet6. 字符串排序思路:利用java 的 Arrays.sort 排序数组即可7. 购物单 (TODO 难一点)思路1:给定购物单,逐级增加金额和件数,2021-02-05 18:01:5884
0
-
原创 java常见编程练习hw一(入门、简单题型)
文章目录1. 二进制中1的个数思路1: 输入的整数与1做位与运算[推荐掌握]思路2:n&(n-1)2. 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小 公倍数。思路1: 最小公倍数 = 两数相乘/最大公约数求最大公约数3. 字符逆序思路1: StringBuilder.reverse方法4. 等差数列思路:数学思路,转化为等差数列求和,直接用公式计算求解5. 求最大连续bit数思路: 位运算,利用>>运算符,循环判断是否有连续的1。2021-02-05 16:45:29115
0
-
原创 JAVA语言-Pattern 正则的基本使用(常用正则表达式\Java Matcher对象中find()与matches()的区别)
文章目录Java 正则表达式常用正则表达式java Pattern和Matcher 常用使用示例Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 “Hello World” 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:“a” 或 “1”。Java 正则表达式和 Perl 的是最为相似的。ja2021-02-03 14:59:31124
1
-
原创 JAVA语言-比较器Comparator(java中Comparable和Comparator的区别)
文章目录一、什么是Comparator二、Java compare方法和compareTo方法三、java中Comparable和Comparator的区别Comparator的例子三、demo:java8使用Lambda表达式比较器Comparator给List对象排序,按时间、数字、字典排序一、什么是ComparatorComparator 是javase中的接口,位于java.util包下。数组工具类和集合工具类中提供的工具方法sort方法都给出了含有Comparator接口的重载方法。Arr2021-02-02 11:34:40146
1
-
原创 java 毫秒转时分秒格式(Java中将毫秒数转为*天*小时*分*秒)
文章目录将毫秒 换算成(天 时 分 秒 毫秒)将毫秒 换算成(天 时 分 秒 毫秒)背景:如果只有50秒,就显示50秒如果有1分钟以上,就显示1分钟XX秒如果有1小时以上,就显示x小时y分钟z秒public static String formatTime(Long ms) { Integer ss = 1000; Integer mi = ss * 60; Integer hh = mi * 60; Integer dd = hh2021-01-12 13:38:221365
0
-
原创 redis 返回 key 的剩余的过期时间(RedisTemplate封装PTTL 命令)
文章目录redis 返回 key 的剩余的过期时间(PTTL 命令)redis 返回 key 的剩余的过期时间(PTTL 命令)Redis Pttl 命令以毫秒为单位返回 key 的剩余过期时间。redis Pttl 命令基本语法如下:redis 127.0.0.1:6379> PTTL KEY_NAME返回值当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。注意:在 Redis 2.8 以2021-01-12 11:54:55690
0
-
原创 PostgreSQL(Pgsql)快速开始/ ubuntu 下PostgreSQL数据库安装配置
文章目录一、PostgreSQL是什么1. Pgsql和Mysql的对比二、ubuntu 下安装配置postgres sql 数据库1. [推荐]apt-get 安装postgres开启远程访问2. 源码安装三、参考一、PostgreSQL是什么官网: https://www.postgresql.org/PostgreSQL: The World’s Most Advanced Open Source Relational DatabasePostgreSQL:世界上最先进的开源关系数据库Pos2021-01-04 17:03:16120
0
-
原创 Java 获取当前或调用者类名和方法名(Thread.currentThread().getStackTrace()、new Throwable().getStackTrace())
文章目录一、Java获取当前类名和方法名Thread.currentThread().getStackTrace()1. 关于Thread.currentThread().getStackTrace()2. Thread.currentThread().getStackTrace()这种直接获取堆栈的方法在中有何隐患吗?二、【推荐】Java获取当前类名和方法名new Throwable().getStackTrace()1. 关于Java Throwable getStackTrace()方法一、Java2020-12-29 12:24:50588
0
-
原创 Apollo-本地开发模式(不接入配置中心进行本地开发 env=Local)
文章目录Apollo本地开发模式不接入配置中心进行本地开发Apollo本地开发模式不接入配置中心进行本地开发官网: https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97#%E4%BA%94%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91%E6%A8%A1%E5%BC%8F配置步骤:修改/opt/settings2020-12-12 09:45:27561
0
-
转载 java 通用内存分页(List分页)
自己编写相关工具类List分页和SQL分页在什么情况下使用?参考URL: https://www.zhihu.com/question/62593358/answer/1126234241Java对list进行分页,subList()方法实现分页参考URL: https://www.cnblogs.com/loong-hon/p/10863635.html[推荐]Java内存分页工具类参考URL: http://www.manongjc.com/detail/14-zmdycqozrtwaylf2020-12-08 17:07:16337
0
-
转载 JAVA语言-判断String是否包含子串
文章目录自己编写相关工具类自己编写相关工具类List分页和SQL分页在什么情况下使用?参考URL: https://www.zhihu.com/question/62593358/answer/1126234241Java对list进行分页,subList()方法实现分页参考URL: https://www.cnblogs.com/loong-hon/p/10863635.htmlJava内存分页工具类参考URL: http://www.manongjc.com/detail/14-zmdyc2020-12-08 14:38:51490
2
-
原创 JAVA语言-常量字符定义,比如逗号、句号、空格等(hutool )
常量字符定义(hutool )Hutool中作者已经定义了一些特殊字符常量,建议工作中可以直接使用,不要再自己封装。public class StrUtil { public static final int INDEX_NOT_FOUND = -1; public static final char C_SPACE = ' '; public static final char C_TAB = '\t'; public static final char C_DOT =2020-11-24 14:22:301101
0
-
原创 JAVA语言-Boolean.TRUE 和 true 性能对比
Boolean.TRUE 和 true 性能对比Boolean.TRUE 和 true 性能对比参考URL: https://blog.csdn.net/anenan/article/details/88720152在一些开源项目中,我们发现它的函数返回 这样写 return Boolean.TRUE;为什么呢?可以查看原作者性能测试,这里给出如下结论:建议 Boolean 返回类型函数建议 return Boolean.TRUE;这种写法!Boolean A(){ retur2020-11-24 10:20:13415
0
-
转载 JAVA语言-利用java8 stream().filter()过滤List对象(查找符合条件的对象集合)
Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。使用filter()过滤List//查找身高在1.8米及以上的男生List<StudentInfo> boys = studentList.stream().filter(s->s.getGender() && s.getHeight() >= 1.8).c2020-11-12 20:13:442546
0
-
转载 JAVA语言-利用java8 stream().map()提取List对象的某一列值及排重
文章目录stream().map()提取List对象的某一列值及排重stream().map()提取List对象的某一列值及排重//测试数据,请不要纠结数据的严谨性List<StudentInfo> studentList = new ArrayList<>();studentList.add(new StudentInfo("李小明",true,18,1.76,LocalDate.of(2001,3,23)));studentList.add(new StudentInf2020-11-12 16:13:32378
0
-
原创 JAVA语言-利用java8 stream流将一个对象集合转换成另一个对象集合
利用java8 stream流将一个对象集合转换成另一个对象集合 // 从数据库中查询出的对象集合 List<OperationStation> operationStations = operationStationJoinMapper.selectJoinByExample(example); // 判端是否为空 if (CollectionUtils.isNotEmpty(operationStations)) {2020-11-06 14:01:512617
1
-
原创 Java向mysql数据库插入datetime类型数据(插入当前时间)/向mysql插入时间
Java向mysql数据库插入datetime类型数据实例参考URL: http://www.125jz.com/1859.html2020-10-30 20:36:061187
0
-
原创 java语言-遍历List (Java8 forEach)
文章目录Java遍历List方法Java遍历List对比选择Java遍历List方法Java遍历List的方法主要有:public class Test { public static void main(String[] args) { // 循环遍历List的4中方法 List<String> strList = new ArrayList<>(); strList.add("aaa"); strLi2020-10-29 17:19:42507
0
-
原创 java语言-JAXB -批量将XSD生成JAVA类
文章目录一、问题背景二、IEDA 中生成java类三、利用xjc命令批量将XSD生成JAVA类四、利用maven插件批量将XSD生成JAVA类一、问题背景现有几个xsd文件,需要将其转成java类。二、IEDA 中生成java类参考:https://docker.blog.csdn.net/article/details/109068878缺点:一次只能操作一个文件。三、利用xjc命令批量将XSD生成JAVA类批量XSD文件生成Java对象参考URL: https://blog.csdn.n2020-10-27 11:24:3896
0
-
原创 java语言-JAXB在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
文章目录在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsiJaxb marshaller总是写xsi:nil(即使在@XmlElement(required = false,nillable = true)时)(Jaxb marshaller always writes xsi:nil (even when @XmlElement(required=false, nillable=true)))参考URL: ht2020-10-21 15:06:38571
0
-
原创 java语言-什么是java SPI
文章目录一、什么是SPI1. SPI优缺点2. SPI使用流程3. Java类库中的实例二、SPI和API区别三、应用场景三、参考一、什么是SPISPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。SPI的英文名称是Service Provider Interface,是Java 内置的服务发现机制。在开发过程中,将问题进抽象成API,可以为API提供2020-08-20 10:32:30143
0
-
原创 java语言-Future快速开始
什么是FutureJava并发编程Future超详细教程参考URL: https://baijiahao.baidu.com/s?id=1671811356385033078&wfr=spider&for=pc2020-07-30 10:20:2282
0
-
原创 java socket-Socket端口复用(setReuseAddress)
socket.setReuseAddress(true); 含义设置Socket的选项参考URL: https://blog.csdn.net/qq_34444097/article/details/78966654如下代码, sock.setReuseAddress(true);什么含义? public static Socket getSocket(InetSocketAddress addr) throws IOException { Socket sock = new Socket2020-05-16 15:55:121877
0
-
原创 设计模式六大原则
文章目录软件设计的六大原则1. 开放-封闭原则2. 单一职责原则举例3. 里氏替换原则4. 依赖倒置原则举例5. 接口隔离原则6. 迪米特原则举例软件设计的六大原则设计模式的六大原则参考URL: https://zhuanlan.zhihu.com/p/921521901. 开放-封闭原则Open-Close Principle(OCP):一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。目的就是保证程序的扩展性好,易于维护和升级。对于扩展是开放的,对于更改是封闭的。开放-封闭原则是面向2020-05-13 17:57:2197
0
-
原创 OKHttp3 快速开始
文章目录什么是OKHttp3基于springboot的RestTemplate、okhttp和HttpClient对比Okhttp的基本使用maven引入其他参考什么是OKHttp3官网地址:https://square.github.io/okhttp/github地址:https://github.com/square/okhttpOKHttp是一个当前主流的网络请求的开源框架Squ...2020-05-06 16:44:32263
0
-
原创 Netty 快速开始(netty websocket客户端使用流程)
网络IO的基本知识与概念快速使用maven 引入 <!--netty--> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <!-...2020-05-01 10:06:02160
0
-
原创 jackson 快速开始
文章目录jackson 介绍常用使用方法maven引入JAVA对象转JSON[JSON序列化]JSON转Java类[JSON反序列化]demoSpringBoot JacksonJackson两种配置方式jackson 介绍官方地址: https://github.com/FasterXML/jackson-core常用使用方法maven引入<properties> ...2020-04-25 14:13:07135
0
-
原创 java socket-keepalive理解
socket keepalive理解参考URL: https://www.cnblogs.com/xiao-tao/p/9718017.htmljava socket编程中有个keepalive选项,看到这个选项经常会误解为长连接,不设置则为短连接,实则不然。socket连接建立之后,只要双方均未主动关闭连接,那这个连接就是会一直保持的,就是持久的连接。keepalive只是为了防止连接的双...2020-04-24 17:27:31369
0
-
原创 java安全相关类 (java.security包)
java.security包官网:https://docs.oracle.com/javase/8/docs/technotes/guides/security/overview/jsoverview.htmlJava security technology includes a large set of APIs, tools, and implementations of commonl...2020-04-16 17:10:44617
0
-
原创 Apollo 快速开始
apollo是什么[官方文档很全,也很详细]官网地址:https://github.com/ctripcorp/apolloapollo是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端Apollo的优势Apollo从设计之初就立志于成为一个有治理能力的配置发布平台Apollo服务端 安装配置Apollo和Spring Clo...2020-04-15 16:02:0691
0
-
原创 centos7源码安装jdk java1.8
文章目录centos7源码安装java1.80)删除之前rpm安装的openjdk1)下载linux版jdk1.8的jar包2)配置安装centos7源码安装java1.80)删除之前rpm安装的openjdkrpm -qa | grep javarpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64rpm -e --...2020-04-14 15:40:01136
0