JAVA
文章平均质量分 56
FightingITPanda
don't talk,show me the code
展开
-
ArrayList集合数据按字段排序,升序、降序
ArrayList集合数据按字段排序,升序、降序。原创 2022-08-11 15:50:59 · 1046 阅读 · 0 评论 -
Panda白话 - 再认识JAVA反射
最近学习路线:AOP原理 -> JDK 动态代理 -> java 反射真是人生无常,大肠包小肠呀~~反射定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。这个定义看了n遍,每次都是???(小朋友你是否有很多问号?)最近又看了书、文章、视频,有了新的理解,码下来。。万一对你有用知识储备(面试高频):类加载机制j.原创 2022-05-19 00:29:26 · 249 阅读 · 0 评论 -
Panda白话 - Synchronized底层同步机制
Synchronized 都用过,那么它是怎么做到简单修饰一下就能做到并发场景下资源同步的呢?让我们来揭开它神秘的面纱~JDK6以前它是重量级锁,很笨重,就是当一个线程t1访问同步资源时,立马上锁,其它线程过来竞争锁的话直接阻塞,然后等待t1释放锁,线程唤醒再去上重量级锁,线程的阻塞和唤醒需要OS切换CPU(内核态与用户态)的状态来完成,这个状态转换消耗处理器时间,开销大,影响性能,so~ 在JDK 6 引入了偏向锁(默认开启偏向锁) 和 轻量级锁所以现在有四种锁状态,无锁 -> 偏向锁 -&原创 2021-10-26 16:49:17 · 232 阅读 · 0 评论 -
Panda白话 - volatile
之前看的抓心挠肝,多看几遍混熟了一点~ 赶紧码下来~volatile 是什么volatile 是一个类型修饰符,只能修饰共享变量volatile 什么用看这个单词的意思,不稳定的,易变的,可以看出,专治这些易变易产生问题数据,嘎嘎1、程序并发执行过程中,对共享变量的修改其他线程可见,即数据可见性、一致性2、防止指令重排导致程序异常先来做个知识储备和普及~共享变量共享变量指的是并发中,不同线程访问主存中同一数据的变量,主存是给所有CPU共享的,大家伙都要用这个变量,那它就是共享变量,我原创 2021-10-19 19:48:54 · 198 阅读 · 0 评论 -
JDBC连接数据库五步走
//1、加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//2、获取数据库连接Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&user=root&password=root")原创 2021-07-06 13:39:26 · 293 阅读 · 0 评论 -
panda理解的ThreadLocal
之前一直觉得ThreadLocal是一个很高大上的东西,可望而不可即,直到今天老师讲课用到ThreadLocal,一笔带过了,说大家都懂了不细说了,what?? 大家都会了?那panda还心思啥呢,抓紧偷偷学起来呀。。看了几篇文章发现,奥~ 就那么回事,做个笔记吧,万一有小白喜欢看panda这种大白话风格呢。。吼吼一、ThreadLocal简介ThreadLocal - 线程本地变量 ,线程本地啥意思呢,就是线程自己的,别的线程你拿不到,哈哈然后它就是个变量,存值用的在idea中打开Thread原创 2021-06-08 16:07:06 · 251 阅读 · 2 评论 -
源码解读:100 = 100 为true,1000 = 1000为false问题
最近公众号老是看到这个小题,就大概知道Integer是有个缓存【-128,127】,今天我们来研究下测试代码: public static void main(String[] args) { Integer a = 100,b = 100; Integer c = 1000,d = 1000; System.out.println("100 = 100 结果为:"+(a == b)); System.out.println("1000 = 1000 结果原创 2020-11-18 10:06:08 · 257 阅读 · 0 评论 -
java 后台实现华为云文件下载服务
需求背景:页面’点击下载‘拿到这条数据id,去后台查这条数据的华为云文件地址,下载文件,效果如下。。实战:step one:拿前台传过来的id去库里查这条数据文件的华为云地址//1、获取华为云地址String fileUrl = "";try{ fileUrl = letterManageService.letterDownload(letterId);}catch(BusinessException e){ logger.info("获取华为云地址失败。。失败原因:"+原创 2020-11-05 15:20:11 · 1007 阅读 · 0 评论 -
LOGBACK-日志框架-简单入门
加粗样Logback是由log4j创始人设计的又一个开源日志组件式优点:1. 更快实现2. 充分测试、3. 充分得文档使用步骤:1、logback jar包已经整合到spring boot中,无需再引2、在resources下放配置文件logback.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <jmxConfigurator /> <原创 2020-10-09 11:57:12 · 182 阅读 · 0 评论 -
Apache包 VS Spring 包下的BeanUtils.copyProperties(bean拷贝)
apache 导包: import org.apache.commons.beanutils.BeanUtils;属性复制 :从右往左拷贝 浅拷贝BeanUtils.copyProperties(destination,orignal);需要拷贝的类都是public 修饰,否则会报错java.lang.NoSuchMethodException找不到get/set方法Spring 导包:import org.springframework.beans.BeanUtils;属性复制:从左向右拷贝原创 2020-07-29 10:45:41 · 491 阅读 · 0 评论 -
Cannot refer to the non-final local variable userSession defined in an enclosing scope
今天同事突然找我报了这个么问题,别人都没报错,就他大致查了一下是jdk版本的问题,他将jdk版本换成1.8依旧报错查了下,错误原因大致如下:新启线程与主线程各有一份独立占内存空间,userSession等变量是主线程的局部变量,会随主线程结束而出栈销毁,会存在新启线程引用不到的情况答:查了下,jdk8会自动为匿名内部类,也就是我们的新启线程传的局部变量隐士生命为final类型final类型是为了保证主、子线程数据一致性其实jdk对内部类的处理是将局部变量复制了一份给它,强制生命为final类原创 2020-07-17 14:21:41 · 552 阅读 · 0 评论 -
JVM - 7种垃圾收集器
https://www.cnblogs.com/cxxjohnson/p/8625713.html转载 2020-05-05 22:25:37 · 187 阅读 · 0 评论 -
LeetCode算法题——翻转整数
题目思路:每次获取目标整数个位数,再每次乘以10加上最后余数达到翻转tip:% : 取余/ : 取整代码: public static int convert(int target) { int result = 0; if (target > Integer.MAX_VALUE || target < Integer.MIN_V...原创 2020-03-22 15:18:48 · 164 阅读 · 0 评论 -
LeetCode算法题——两数之和
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]暴力法两个...原创 2020-03-19 14:56:24 · 143 阅读 · 0 评论 -
hibernate的延迟加载
(1):延迟加载的概念Hibernate从数据库获取某一个对象数据,获取某个对象的集合属性时、获取某个对象锁关联的另一个对象时,由于没有使用这个数据,hibernate不会从数据库真正加载这个数据,而是创建一个代理对象来代替该对象,代理对象所有属性赋默认值,真正需要该对象数据时才从数据库加载该对象数据。(2):延迟加载的情况1、session.load()方法加载实体时,获取到的是代理对象,...原创 2020-03-02 13:45:30 · 206 阅读 · 0 评论 -
hibernate的n+1问题及解决方案
(5)Hibernate得n+1问题Hibernate 首先查询一次得到当前对象,然后当前对象的n个关联对象再次访问数据库n次,造成1+n问题(6)Hibernate N+1问题解决方案1、延迟加载2、Fetch = “join” 做外连接,允许外键为空3、二级缓存...原创 2020-03-02 13:43:42 · 422 阅读 · 0 评论 -
内部类、静态内部类-延迟加载
外部类加载顺序:1、外部类初次加载,会初始化静态变量、静态代码块、静态方法,但不会加载内部类和静态内部类。2、实例化外部类,调用外部类的静态方法、静态变量,则外部类必须先进行加载,但只加载一次。3、直接调用静态内部类时,外部类不会加载。内部类加载顺序:在初次调用的时候加载,且只加载一次package com.panda;/** * author: ysd * Date: 202...原创 2020-01-09 16:01:31 · 657 阅读 · 0 评论 -
JVM参数
原创 2019-12-27 15:04:13 · 98 阅读 · 0 评论 -
dubbo - 智能容错
**1、Failover Cluster (dubbo默认的容错机制)**失败自动切换,当出现失败,重试其它服务器。通常用于 读 操作,但重试会带来更长延迟。可通过retries="2"来设置重试次数(不含第一次)//服务提供者<dubbo:service retries="2" />//服务消费者<dubbo:reference> ...转载 2019-11-26 17:33:44 · 603 阅读 · 0 评论 -
Dubbo 的负载均衡策略 之 最小活跃调用策略
1 最小活跃调用策略指的是当请求调用来临,有多个实例提供服务的时候,选择其中被调用活跃次数最少的实例来提供服务。通俗一点讲就是,当前有 3 个实例在提供服务,A 当前被 2 个服务调用,B 当前被 3 个服务调用,C 当前被 1 个服务调用,一个新的调用请求过来,会选择调用到 C 实例。Dubbo 中实现该策略的代码是:LeastActiveLoadBalance。它分为 3 种情况。1、当...转载 2019-11-26 16:39:33 · 554 阅读 · 0 评论 -
Dubbo 的负载均衡策略 之 随机策略
1 、什么是负载均衡策略有多台服务器,访问每台服务器的次数是均衡的,不致某一台或几台服务器访问次数过多二负载过大挂掉Dubbo 提供了如下 4 个负载均衡策略。2、随机负载均衡策略Dubbo 中的随机负载均衡策略的实现类是: RandomLoadBalance ,它分为 2 种情况。被调用服务的所有实例都是同等权重的,则随机生成一个从 0 到 实例数量 - 1 的数,并返回对应的实例。...转载 2019-11-25 14:21:19 · 442 阅读 · 0 评论 -
throws与throw
throws 声明抛出异常当前方法不知道如何处理这种类型的异常,该异常应该由上一层调用者处理,main方法也不知道如何处理这种类型的异常,也可以通过throws声明抛出,交给jvm处理,jvm对异常处理方法:1、打印异常跟踪信息,2、终止程序执行//从下往上看public class LearnThrow { //main方法也向外抛出了异常,将异常交给jvm处理,即直接停止程序执行...原创 2019-11-09 15:08:44 · 170 阅读 · 0 评论 -
关于Finally块的执行顺序
背景:为了保证一定能回收try块里打开的物理资源,异常处理机制提供了finally块Java异常处理机制:1.当try语句块内容执行出错,系统会自动生成一个异常对象,将该异常对象交给JRE,这就是我们所说的抛出(throw)异常2.jre拿到异常对象,去catch块找匹配的异常对象类型,将异常对象传给catch块的形参,交给catch块做异常处理,这就是我们所说的捕获(catch)异常3....原创 2019-11-09 11:26:51 · 322 阅读 · 0 评论 -
什么是红黑树(小灰版)
什么是红黑树(小灰版)简单易懂转载 2019-10-17 11:18:02 · 512 阅读 · 0 评论 -
浅拷贝&深拷贝(通俗易懂)
浅拷贝:复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针,不复制堆内存中的对象。深拷贝:复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针和堆内存中的对象。...原创 2019-10-16 16:06:54 · 282 阅读 · 0 评论 -
引用类型数组在内存中存储情况-小实例之图文分析
package pandaLearnArray;public class InitArray2 { public static void main(String[] args){ Panda[] panda;//定义引用数组类型变量 放到栈内存、此时为空引用,没有指向任何有效内存 panda = new Panda[2];//在对内存分配两个存放引用变量大小的空间,赋默认值null...原创 2018-11-14 16:41:10 · 287 阅读 · 0 评论 -
eclipse 里直接运行代码
一般我们写个测试类,在eclipse或者myeclipse里直接右键run as 或者打断点debug as 运行,然后控制台查看程序运行结果,昨天写了个类,发现右键run as咋也没java application项,百思不得其解,求助大神,差点没被打死,原来是JVM调用主程序入口出了问题,main()函数没用static声明,加上即可。主程序入口: public static voi原创 2017-05-26 10:54:56 · 4874 阅读 · 2 评论 -
Cookie与Session工作机制
1、为什么会有COOKIE这种机制首先一种场景, 在一个网站上面, 我发起一次请求,那服务器怎么知道我是谁?是谁发起的这次请求呢, HTTP协议是无状态的协议, 浏览器的每一次请求,服务器都当做一次新请求, 但是在实际应用中我们需要知道这个请求来自于谁,需要查找哪些信息返回给访问者,这个时候就引入了COOKIE机制, COOKIE机制是什么呢? 其实就是服务器给客户端返回数据的时候,中间加了...转载 2019-03-06 14:56:19 · 489 阅读 · 0 评论 -
wsdl文档注释
<?xml version="1.0" encoding="UTF-8" ?> - <wsdl:definitions targetNamespace="http://10.164.4.10/uat/services/PersonalPolicyPos" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://10.原创 2017-11-17 10:41:50 · 1205 阅读 · 0 评论 -
《Thinking in Java》 笔记-one
对象的等价性: == !=操作符 比较的是两个对象的引用 Integer t1 = new Integer(33); Integer t2 = new Integer(33); System.out.println(t1==t2);//false System.out.println(t1!=t2);//true t1 t2是两个对象 引用不同 所以!= equals():默认是比较原创 2017-06-14 10:00:46 · 342 阅读 · 0 评论 -
Java中序列化的serialVersionUID作用
Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象。 序列化是Java中实现持久化存储的一种方法;为数据传输提供了线路级对象表示法。 Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果转载 2017-06-13 10:00:36 · 383 阅读 · 0 评论 -
java项目开发常见问题解决
1.开发人员经常遇到的问题是:编好的代码,本地测试是妥妥的,更新到测试服务器时总会出一些问题。我今天修改了一个jsp的init文件,和codeQuery的java文件,抓好java文件的编译class文件和init.jsp一起打包上传测试服务器,结果发现测试上还是修改之前的状态。 两步解决:1)重启测试服务器 因为codeQuery还是读的缓存中的内容 2)原创 2017-06-08 16:48:05 · 1429 阅读 · 0 评论 -
字节流PK字符流
字节流: 顶层抽象类;InputStream OutputStream 常用子类: FileInputStream:从文件读入的输入流 FileOutputStream:从文件写入的输出流字符流: InputStreamReader:字节流转换为字符流 //读取e盘下panda.txt的文件中字符 InputStreamReader reader = new InputStreamRe原创 2017-06-08 16:18:39 · 652 阅读 · 0 评论 -
养成良好的编码习惯
稳扎稳打才是硬道理~原创 2017-05-11 13:46:26 · 1637 阅读 · 0 评论 -
sql函数
函数那么多 用熟才理解原创 2017-05-24 18:57:11 · 339 阅读 · 0 评论 -
前后台实现验证当前操作记录是否存在
路很多 没有所谓捷径 适合你的就是最好的方式原创 2017-05-11 13:50:04 · 735 阅读 · 0 评论 -
update的三种实现方法
好记性不如烂笔头~原创 2017-05-11 13:42:17 · 2737 阅读 · 0 评论 -
UML图符号详解
csdn有bug 1.图片为啥不能粘贴过来 2.哎呀 忘记了原创 2017-05-11 12:05:40 · 517 阅读 · 0 评论 -
低耦合&&高内聚
内聚:模块内、单一原则性,一个模块只负责一个任务。一个类中变量与方法连接的强度。 耦合:模块间、模块间联系越紧密,耦合性越强,独立性越差。类之间相互调用的关系。类之间相互依赖的尺度。 eg:cpu与主板,特殊cpu依赖特殊主板,那么这两个模块是耦合的,CPU不依赖唯一主板,那么它们就是低耦合的。 耦合性和内聚性是模块独立性的两个定性标准。 面向对象设计标准,主要指类的高内聚、低耦合。原创 2017-11-24 15:23:14 · 537 阅读 · 0 评论 -
Oracle 索引的创建,删除,修改
**1.创建索引 CREATE INDEX** CREATE [unique] INDEX [user.]index //索引名 ON [user.]table //建立索引的表名 (column [ASC | DESC] [,column[ASC | DESC] ] … )//建立索引的列,一个索引最多有16列,long列、long raw列不能建索引列 ,asc升序排列(默认)desc原创 2017-12-14 16:53:37 · 1308 阅读 · 1 评论