标签: JAVA

76 篇文章

从Java 8到 Java 17–Java 11
Java 11是这是 Java 大版本周期变化后的第一个长期支持版本(LTS版本,Long-Term-Support,持续支持到2026年9月),是目前全球使用最多的LTS版本之一。 官方新特性: 本地变量类型 字符串加强 集合加强 加强文件读写 本地变量类型 这个新功能是java10为Java增加一些语法糖 - 简化它并改善开发者体验 var s…
从Java 8到 Java 17–Java 10
从Java 10 开始,Java的迭代周期缩短为半年,半年发布一个版本。Java10它号称有109项新特性,包含12个JEP。 特性列表 局部变量的类型推断 var关键字 GC改进和内存管理 并行全垃圾回收器 G1 垃圾回收器接口 线程-局部变量管控 合并 JDK 多个代码仓库到一个单独的储存库中 新增API:ByteArrayOutputStre…
从Java 8到 Java 17–Java 9
REPL (JShell):交互式编程环境。 HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的 HTTPClient API 支持 WebSocket 和 HTTP2 流以及服务器推送特性。 改进的 Javadoc:Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。…
从Java 8到 Java 17–Java 8
想必绝大部分项目还在运行着Java8。接下来就开始梳理一下吧。 Java8 优势:速度快、代码更少(增加了新的语法 Lambda 表达式)、强大的 Stream API、便于并行、最大化减少空指针异常 Optional; 一、Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据…
服务端如何防止重复支付-java
概述 如图是一个简化的下单流程,首先是提交订单,然后是支付。支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互,支付成功以后,异步通知支付中心,支付中心更新自身支付订单状态,再通知业务应用,各业务再更新各自订单状态。 这个过程中经常可能遇到的问题是掉单,无论是超时未收到回调通知也好,还是程序自身报错也好,…
Java多线程编程学习笔记
Java多线程编程 Java进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位。 可以把进程简单的理解为正在操作系统中运行的一个程序。 Java线程 线程(thread)是进程的一个执行单元。 一个线程就是进程中一个单一顺序的控制流, 进程的一个执行分支。 进程是线程的容器,一个进程至…
Java 8 Stream
什么是 Stream? Stream(流)是一个来自数据源的元素队列并支持聚合操作 元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。 数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作 类似SQL语句一样的操作, 比如filter, map, redu…
什么是YAML
YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。YAML的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。主要强度这种语音是以数据为中心,而不是以标记语音为重心,例如像xml语言就会使用大量的标记。 YAML是一个可读性高,易于理解,用来表达数…
MyBatis-Plus使用技巧
最近在用 Mybatis-Plus,嗯,是真他妈香!!!今天就来说说 Mybatis-Plus 的那些使用技巧 创建user表 DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEF…
Lombok的基本使用
Lombok的基本使用 1.Lombok的使用非常简单: Lombok plugin 插件 Intellij idea 使用Lombok需要安装插件:Lombok plugin: Preferences —> Plugins —> 搜索 Lombok plugin — > Install 引入相应的maven包 <!-- lombok --&…
Component, Repository, Service,Controller的区别
相同点: @Component为@Service、@Controller、@Repository的元注解,四个实现功能是一样的 不同点为区分业务层: 1.@Component 业务特殊组件层,如handler类 2.@Controller 业务控制层 3.@Service 业务逻辑层 4.@Repository 业务资源层 总结 @Componen…
使用BufferedReader和BufferedWriter转换文件编码格式遇到的坑~
最近一个省的导出功能遇到了一个奇葩的BUG,自个折腾了很久很无助,先记录吧~ 启初还以为是部署的代码版本过久导致的,于是又重新去部署一份最新代码还是无法解决。因为导出功能是先从gp数据库上copy出 UTF-8的csv文件,基本上很快生成。可是到了需要到数据转换成GBK编码格式时候就出问题了。 BUG是这样的,开始导出并且转换小数据量呢基本上莫得问…
IntelliJ IDEA文件全部红色的解决办法
今天同事copy了一份代码给我测试但文件全部红色很奇怪 主要原因是当前项目用了版本控制器,因此下面新建的所有的项目默认都是加入到版本控制里面,所以项目名称和文件都是红色的。 解决这个问题: File–>Settings–>version control 弹出的文件夹选择不需要加入版本控制的文件,然后点击OK,如图:  
JavaSE基础:JDK8日期操作
转载:https://juejin.im/post/5a795bad6fb9a0634f407ae5 Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。 新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且…
java面试题1
1.什么是重载和重写? Java 里方法的重写(Overriding)和重载(Overloading)就是指的 java 里多态。 重写就是父类与子类之间的多态,重载是在一个类中多态对的体现 : (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。 (2)方法重…
instanceof运算符-面试2
此运算符仅用于对象引用变量。 运算符检查对象是否属于特定类型(类类型或接口类型)。 如果操作符左侧的变量引用的对象是右侧的类/接口类型,则结果为真。 以下是一个例子: public class HelloWorld { public static void main(String[] args) { String name = "glj"; // …
Java的访问控制权限(public,private,protected,default)面试笔记
类中的数据成员和成员函数据具有的访问权限包括:public、private、protect、default(friendly) public 公开;可以被所有其他类所访问。 private 私有;只能被自己访问和修改。 protected 保护;自身、子类及同一个包中类可以访问。 default 默认:同一包中的类可以访问,声明时没有加修饰符。 p…
记忆系列–Spring Boot之拦截器addInterceptors
啦~嘿~呦~又是美好的一天呀~九月份第6篇还行吧(九月还差3篇啦~那就水够啦) 拦截器在我们项目中经常会用到哒~ 那我先讲如何用吧(也是怕自己忘记) 用一个简单的登录拦截例子步骤吧: 1.创建我们自己的拦截器类并实现 HandlerInterceptor 接口 2.实现WebMvcConfigurer接口中的addInterceptors方法把自定…