![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 87
LP_bin
人生如棋,吾愿为卒.
展开
-
【Java】BigDecimal使用不当导致的生产事故
我们在使用金额计算或者展示金额的时候经常会使用 BigDecimal,也是涉及金额时非常推荐的一个类型。BigDecimal 自身也提供了很多构造器方法,这些构造器方法使用不当可能会造成不必要的麻烦甚至是金额损失,从而引起事故资损。接下来我们看下收银台出的一起事故。...原创 2022-06-06 23:18:37 · 369 阅读 · 1 评论 -
【SpringBoot】切面AOP概念及简单实例
文章目录理解AOP1、什么是AOP2、 AOP的体系和概念概念简解AOP实例相关注解1、@Pointcut2、@Around3、@Before4、@After5、@AfterReturning6、@AfterThrowing理解AOP1、什么是AOPAOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(另外两个:IOC-控制反转、DI-依赖注入)。那么AOP为何那么重要呢?在我们的程序中,经常存在一些系统性的需求,比如权限校验、日志记录、统原创 2021-06-26 13:49:03 · 326 阅读 · 0 评论 -
【Spring】事务管理
文章目录Transactional注解属性1、Timeout2、isolation3、readOnly4、propagation5、rollbackFor和noRollbackForTransactional注解属性1、Timeout设置事务的超时时间,默认为-1(即不设超时)2、isolation该属性可以设置事务的隔离级别。小知识:数据库有四种隔离级别:读未提交、读已提交、可重复读、可串行化。MySQL默认的隔离级别是可重复读,Oracle的默认隔离级别是读已提交。DEFA原创 2021-05-30 16:30:24 · 174 阅读 · 0 评论 -
【SpringBoot】实现跨域的5种方式
文章目录跨域介绍为什么会出现跨域问题理解跨域非同源的限制Java后端实现CORS跨域请求的方式1、返回新的CorsFilter:全局跨域2、重写WebMvcConfigurer:全局跨域3、使用注解:局部跨域4、手动设置响应头:局部跨域5、使用自定义filter实现跨域跨域介绍为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础原创 2021-05-30 13:44:48 · 129 阅读 · 0 评论 -
【Mybatis】实现数据批量操作
文章目录批量插入1、循环调用SQL插入2、SQL + 'foreach'标签特点批量更新1、循环调用SQL更新1、SQL+外层2、Mybatis批量更新批量插入1、循环调用SQL插入性能问题,排除该方案。2、SQL + 'foreach’标签这个方案有两种写法:第一种写法(推荐):<insert id="insertBatch"> INSERT INTO tb_student (name, age, phone, address, class_id) VALUES原创 2021-05-16 16:44:49 · 200 阅读 · 0 评论 -
【SpringCloud】微服务架构概览
文章目录1、什么是微服务1.1、架构演进1.2、微服务解决方案2、SpringCloud概览2.1、什么是SpringCloud2.2、主要的组件2.2.1、Eureka:注册中心(服务发现)2.2.2、Ribbon:负载均衡2.2.3、Feign:Web Service2.2.4、Hystrix:熔断2.2.5、Zuul:网关2.2.6、GateWay:网关2.2.7、Config:分布式配置2.2.8、Bus:消息总线2.2.9、OAuth2:授权认证2.2.10、Sleuth:服务链路追踪3、小结1原创 2021-03-21 16:24:15 · 139 阅读 · 0 评论 -
【设计模式】Java多线程保证单例
文章目录单例模式分析立即加载(饿汉模式)延迟加载(懒汉模式)懒汉模式保证单例的解决方案1. synchronized关键字实现2. 静态内置类实现单例模式3. 序列化和反序列化实现单例4. 使用static代码块实现单例5. 使用enum枚举实现单例6. 完善使用enum实现单例模式我们常使用单例模式来解决多线程或并发场景下变量数据的安全问题,避免脏数据的产生。本文主要简单总结下Java多线程中使用单例模式思想的各种实现,并比较这些单例具体实现的优点和缺陷。文章内容摘自:《Java多线程编程核心技原创 2021-03-18 22:27:15 · 158 阅读 · 1 评论 -
【Dubbo】搭建源码环境
文章目录1. 拉取Dubbo源码2. maven编译3. 导入到IDEA1. 拉取Dubbo源码Dubbo源码仓库链接相关命令://拉取仓库代码git clone https://github.com/apache/dubbo//切换具体分支,此处以2.7.7为例git checkout -b dubbo-2.7.7 dubbo-2.7.72. maven编译执行mvn命令编译此处需要事先配好maven的环境mvn clean install -D maven.test.ski原创 2020-07-28 17:13:06 · 185 阅读 · 0 评论 -
【Mybatis】ResultMap解析
ResultMap解析在Mybatis中,resultMap节点定义了结果集和结果对象(JavaBean)之间的映射规则。本文章主要讲述的是resultMap的解析。相关基础类1、ResultMapping:列映射类ResultMapping对象记录了结果集中的一列与对应JavaBean中一个属性的映射关系;文章参考:列映射类ResultMapping2、ResultMap:结果集映射类ResultMapResultMap对应的是结果集中的一个结果集。其基本组成部分中,含有Result原创 2020-07-28 14:58:27 · 632 阅读 · 0 评论 -
Java8 中Stream的常用技巧
Java8中,Stream数据流操作对集合操作做了极大的简化,学习了Stream,以后我们可以不用for循环就能对集合进行很多操作。文章目录Stream的初始化流操作1、遍历操作(map)2、过滤操作(filter)3、循环操作(forEach)4、返回特定结果集合(limit/skip)5、排序(sort/min/max/distinct)6、匹配(Match相关)Stream的初始化Java中所有的Stream操作,都是针对流对象的,故使用Stream必须得初始化得到Stream类型对象:S原创 2020-07-28 13:58:30 · 649 阅读 · 0 评论 -
【LeetCode】38.(Java)Count and Say
题目The count-and-say sequence is the sequence of integers with the first five terms as following: 1 11 21 1211 1112211 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21....原创 2019-01-24 11:32:58 · 160 阅读 · 0 评论 -
记Java中Char和String之间的转换
【Java】Char和String之间的转换本文转自:http://blog.csdn.net/yaokai_assultmaster/article/details/52082763在Java中,char是一个基本类型,而String是一个引用类型;有时候我们需要对它们俩进行相互转换。此文记char与String两种类型的变量之间如何进行转换。String->Char返回ch...转载 2019-04-18 00:12:42 · 2803 阅读 · 1 评论 -
【LeetCode】563. 二叉树的坡度(递归实现)
给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。整个树的坡度就是其所有节点的坡度之和。示例:输入:1/ \2 3输出: 1解释:结点的坡度 2 : 0结点的坡度 3 : 0结点的坡度 1 : |2-3| = 1树的坡度 : 0 + 0 + 1 = 1注意:任何...原创 2019-04-19 22:19:42 · 113 阅读 · 0 评论 -
maven简介、下载配置
Maven简介以及下载配置Maven是专门用于构建和管理Java相关项目的工具。一、Maven的主要用处1、 Maven管理的Java项目有着相同的项目结构使用Maven管理的Java 项目都有着相同的项目结构pom.xml 配置文件用于维护当前项目都用了哪些jar包所有的java代码都放在 src/main/java 下面所有的测试代码都放在src/test/java ...原创 2019-06-21 22:13:51 · 120 阅读 · 0 评论 -
创建并运行maven项目
创建、运行Maven项目接上文:maven简介、下载配置以下下载链接是常用的maven仓库,直接下载并解压到自己所在的仓库文件夹下即可(仓库文件夹默认位置为:C:\User\用户名\.m2\repository):Maven常用仓库下载一、cmd下创建Maven项目在想要创建maven项目的文件夹下打开命令行窗口(或win+r、输入cmd回车出现命令行窗口,并cd到项目目录)确...原创 2019-06-22 00:28:43 · 408 阅读 · 0 评论 -
Java内存模型(JMM)
文章目录Java内存模型(JMM)(一)、JMM定义原子性问题可见性问题(缓存一致性)有序性问题(二)、JMM实现原子性可见性有序性Java内存模型(JMM) JMM全称Java Memory Model 。其实JMM并不像JVM内存结构一样是真实存在的。他只是一个抽象的概念。 JMM是和多线程相关的,他描述了一组规则或规范,这个规范定义了一个线程对共享变量的写入时对另一个线程是可见的。...原创 2019-07-12 02:48:58 · 137 阅读 · 0 评论 -
mysql-connector-java 各版本下载地址
自己转发一个做标记,终于不用到处找JDBC了!!转自:原博客JDBC 各种版本下载地址如下图,点击你想要版本的JDBC包:下载对应版本的jar包转载 2019-07-17 16:19:38 · 3242 阅读 · 3 评论 -
MD5加密算法特点及简单实现(Java)
MD5加密及简单实现(Java)在自己学习的项目中需要用到对用户密码进行不可逆加密,保证用户账号的安全性,写此文记此次MD5的加密算法的简单实现。文章目录MD5加密及简单实现(Java)什么是MD5MD5加密的特点对字符串进行MD5加密1、简单实现,不做处理什么是MD5MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致,是计算机...原创 2019-08-04 15:05:45 · 1907 阅读 · 0 评论 -
Java排序重写比较器
重写Comparetor1、Comparetor简单比较Java中的排序默认是升序排序,重写为降序如下: public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for (int i = 1; i < 10; i++) { ...原创 2019-09-01 23:35:52 · 2096 阅读 · 0 评论 -
JVM指令手册
文章目录栈和局部变量操作将常量压入栈的指令将栈中的值存入局部变量的指令wide指令通用(无类型)栈操作类型转换整数运算逻辑运算移位操作按位布尔运算浮点运算对象和数组对象操作指令数组操作指令控制流条件分支指令比较指令无条件转移指令表跳转指令异常方法返回指令线程同步JVM指令助记符栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型...转载 2019-09-13 10:59:46 · 953 阅读 · 0 评论 -
【JDK笔记】JDK5 新增特性
JDK5 新增特性笔记参考博客:JDK 5 新特性自动拆装箱Foreach静态导入可变参数 Var args枚举格式化输出泛型ProcessBuilder内省线程并发库(JUC)监控和管理虚拟机元数据1.自动拆装箱Java中的数据类型分为 基本数据类型 和 引用数据类型(即对象)在一些时候我们需要将基本数据类型进行包装,使其能够作为一个对象进行处理,这...原创 2019-04-17 17:14:49 · 125 阅读 · 0 评论 -
Java中Lambda简析笔记
Java中的Lambda简析笔记参考资料《Java编程思想(第四版)》Java学习网站:How2java.cn大佬博客:Java中的Lambda介绍Lambda,首先应从普通方法,匿名类以及Lambda方式的比较中清晰为什么要有Lambda,见如下题目:例题:找出满足条件的Hero对象,如下:初始化后的集合:[Hero [name=hero 0,hp=77.0,damag...原创 2019-04-13 00:53:24 · 190 阅读 · 0 评论 -
【LeetCode】230. 二叉搜索树中第K小的元素(Java)
1、题目描述:Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 Note: You may assume k is always valid, 1 ...原创 2019-02-12 23:54:32 · 503 阅读 · 0 评论 -
【LeetCode】654. 最大二叉树(Java)
题目:Given an integer array with no duplicates. A maximum tree building on this array is defined as follow:The root is the maximum number in the array. The left subtree is the maximum tree construc...原创 2019-02-18 00:19:58 · 324 阅读 · 0 评论 -
排序二叉树的初始化创建、先序遍历、中序遍历、后序遍历和层次遍历实现(Java)
结点Node类信息如下:public class Node { public int data; public Node left; //左右子结点 public Node right; public Node(int data){ this.data = data; this.left = null; this.right = null; }} Java源代...原创 2019-01-17 00:13:39 · 477 阅读 · 0 评论 -
【LeetCode】数组排序及冒泡排序算法优化 (Java)
题目给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 一般冒泡排序算法实现:/*** 冒泡排序一般算法* 时间复杂度:O(n*n)*/public int[] bubsort(int[] arr) { for(int i = 0;i < arr.length;i++) { arr[i] = arr[i]*arr[...原创 2019-01-22 14:35:07 · 584 阅读 · 0 评论 -
【LeetCode】1.计算两数之和(Java)
题目内容:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:Input:nums = [2, 7, 11, 15], target = 9Output:[0, 1]实现算法:(一)、暴力解决:时间复杂度...原创 2019-01-18 21:37:30 · 642 阅读 · 1 评论 -
时间片调度算法进程调度实现(Java)
声明进程类progress:public class progress { int runtime; //进程运行时间 String name; //进程号码 int arrivaltime; //进程到达时间 String state = "No arrival"; //进程状态,默认未到达 int psfinishtime = -1; //进程完成时间,-1:未完成} (...原创 2019-01-18 16:20:01 · 2274 阅读 · 0 评论 -
【LeetCode】709(Java)To Lower Case
Question:Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.实现函数ToLowerCase str()有一个字符串参数,并返回相同的字符串小写。Example 1:Input: "Hello"Output: ...原创 2018-08-06 22:37:14 · 561 阅读 · 0 评论 -
【LeetCode】771(Java)Jewels and Stones
You're given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want to know how many of the...原创 2018-08-06 20:11:09 · 362 阅读 · 0 评论 -
Java中Final、Finally、Finalize三者概述
FinalJava中的一个保留关键字,可修饰声明的变量、方法和类对变量、方法、类的声明final修饰类时,该类没有子类,即不能被继承作为父类;final修饰方法将方法锁定,防止任何继承类修改其含义提高效率:早期Java版本中,final方法转为内嵌调用(如果方法太庞大了,可能性能提升并不明显甚至看不到提升)final修饰变量public class Mai...原创 2019-02-18 16:29:38 · 197 阅读 · 0 评论 -
【LeetCode】985. 查询后的偶数和(Java)
题目描述给出一个整数数组 A 和一个查询数组 queries。对于第 i 次查询,有 val = queries[ i ][0], index = queries[ i ][1],我们会把 val 加到 A[index] 上。然后,第 i 次查询的答案是 A 中偶数值的和。(此处给定的 index = queries[ i ][1] 是从 0 开始的索引,每次查询都会永久修改数组 A。)返...原创 2019-02-18 23:14:15 · 195 阅读 · 0 评论 -
记JDBC连接Mysql的常见异常
刚吃了一套JDBCd的异常连招,特写此篇针对几个主要的异常记下对应比较有效的解决方案环境:编辑工具:Eclipse Java EE数据库 :MysqlJDBC版本:mysql-connector-java-8.0.131 、java.sql.SQLException: No suitable driver found for jdbc:"(连接Mysql的连接信息)"此异常可以...原创 2019-03-15 00:41:23 · 686 阅读 · 0 评论 -
Java中泛型和反射机制
泛型为什么要使用泛型Java中,ArrayList默认接受Object类型的对象,所以所有对象都可以放进ArrayList中所以get(0)返回的类型为Object,需要进行强制转换才能得到自己想要的数据类型如果你的记忆力足够好,记得之前它是什么类型的话但是开发人员总会犯错误的,有可能会将该对象转换为另外一个数据类型,难免出现类型转换异常使用泛型的好处:泛型的用法是在容器后面...原创 2019-03-31 16:03:19 · 517 阅读 · 0 评论 -
整合SSM时遇到的异常
整合Spring+SpringMVC+Mybatis时遇到的问题本文用于记录整合和利用SSM框架开发过程中遇到的问题,保持更新CannotGetJdbcConnectionException: Could not get JDBC Connection本人之前报错的jdbc配置文件中对driverClassName和url的配置内容如下:<bean id="dataSourc...原创 2019-03-30 17:52:01 · 221 阅读 · 0 评论 -
【JVM】运行时数据区简析
Java虚拟机在运行Java程序的过程中,会把他所管理的的内存划分为若干个不同的数据区域。有些区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动/结束而建立/销毁。JVM管理的内存中将会包括如下图中几个运行时数据区域:程序计数器(Program Counter Register,PC) 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示...原创 2019-03-22 01:06:29 · 144 阅读 · 0 评论 -
JVM垃圾回收机制【简单介绍】
Java虚拟机(JVM)垃圾回收机制JVM中的垃圾回收计数是采用的一种自适应的技术(可以通过其工作方式将它“啰嗦地”称为:自适的、分代的、停止-复制、标记-清扫式垃圾回收器)在讲Java虚拟机的自适应回收机制前,有必要说一下其他比较单纯的垃圾回收机制,然后会比较容易地理解JVM的垃圾回收:1、引用计数一种简单但速度很慢的垃圾回收计数。 每个对象都含有一个引用计数器,当有引用连接至对...原创 2019-03-18 00:18:22 · 1015 阅读 · 0 评论 -
java中的抽象类和接口
抽象类 abstract抽象类定义:如果一个类中含有抽象方法,那么这个类称为抽象类,抽象类必须要在类前用abstract关键字修饰。抽象方法必须用abstract关键字修饰,它只有声明,没有具体实现 《Java编程思想》中,对抽象类的描述为包含抽象方法的类。如果我们对抽象类只进行abstract修饰,而不包含抽象方法在其中,这个类还是抽象类嘛?答案是:还是抽象类。但如果一个抽象类不含有...原创 2019-03-24 18:15:27 · 117 阅读 · 0 评论 -
Java中HashMap底层为什么是数组链表?
之前面试时问了HashMap的底层结构,详细见本人个人对HashMap和Hashtable底层实现的见解,入口如下:Java中HashMap与HashTable底层的联系与区别之后被问到HashMap底层为什么是数组链表呢?这样的话,链表一长,在链表中查询的效率不是很低吗?我:(哑了)最近看到一个比较有依据的答案,在此做一下答复。HashMap底层为什么是数组链表呢?在链表中查询的效率不...原创 2019-03-21 11:50:55 · 11074 阅读 · 20 评论 -
【LeetCode】3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3示例 2:输入: “bbbbb”输出: 1示例 3:输入: “pwwkew”输出: 3解法(暴力解法复杂度O(n3)的就不说了)-_-1、使用HashSet进行时间复杂度:O(n)(ps:最坏情况O(2n))class Solution { pub...原创 2019-03-11 21:27:58 · 124 阅读 · 0 评论