JAVA基础
文章平均质量分 74
何xiao树
熟练JAVA开发。web应用开发
展开
-
JVM运行时数据区、常见jvm异常例子
java 运行时数据区整理原创 2022-03-28 00:06:05 · 3700 阅读 · 0 评论 -
Spring事务,隔离性,传播性记录分析
目的:当一个方法内,有操作多张关联表数据的操作时,为保证数据的一致性,需要对这个方法开启事务。 当方法内有异常时,则会进行回滚,数据返回到事务操作前;spring事务的数据回滚依赖于数据库对事务的支持 事务特性: A -原子性 :事务内的数据修改操作要么都成功,要么都失败 C -一致性 :事务内相关联数据的一致性 I - 隔离型 :事务与事务之间的数据相互隔离互不影响 D -持久性 : 事务正常结束对表数据的修改是持久的 事务间的数据隔离级别 :(级别由低->高) READ_UN.原创 2022-02-22 23:56:05 · 813 阅读 · 0 评论 -
Java 代理模式-记录【改】
Java代理模式原创 2022-01-16 00:21:01 · 274 阅读 · 0 评论 -
AbstractQueuedSynchronizer【抽象队列同步器】 -AQS基本原理整理记录
AQS 是什么? 一个抽象类 public abstract class AbstractQueuedSynchronizer 作用: 提供一个框架来实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关的同步器(信号量、事件等) Provides a framework for implementing blocking locks and related synchronizers (semaphores, events, etc) that rely on first-in-first-ou.原创 2022-01-10 22:40:38 · 367 阅读 · 0 评论 -
Java 锁、线程执行顺序
锁是什么 ? 怎么加锁 ? 什么时候加锁 ? 怎么实现高效率加锁 ? 锁是什么? java中的锁是一种线程同步机制,控制对共享资源的访问,来达到数据安全的一种工具。 本质是依赖于底层的操作系统的 Mutex Lock(互斥锁)来实现。 怎么加锁 ? synchronized 关键字、Lock 锁 什么时候加锁 ? 线程是一个单独的资源类 多线程则是,多个线程 争抢同一共享资源 在资源竞争中,就会存在线程安全的问题,这是什么就需要加锁控制 加锁线程排队-》基本表现 同步前-》..原创 2022-01-03 16:27:49 · 1457 阅读 · 0 评论 -
Java -JDK、Spring boot、多线程创建
俗话说 双拳难敌4手,人多好办事;单一个人干活比较吃力的时候,这时我们就需要摇人儿了。 当单线程执行任务效率较低时,我们就考虑使用多线程解决问题,同时注意数据同步问题。 手动创建: 一般建议不丢弃任务,丢弃可能少数据,采用策略 CallerRunsPolicy();返回发起线程继续执行,一般是main 线程 线程池的核心线程数,一般根据CPU 数,以及 阻塞系数觉得,1~0.9,系数越高,执行任务时间越长 分为 IO型、CPU型,根据情况具体配置 private static final ..原创 2021-12-31 14:07:00 · 321 阅读 · 0 评论 -
java 集合分析 记录
ArrayList add() 新增时,每次会判断 if (minCapacity - elementData.length > 0),可能会扩容,重新 Arrays.copyOf(elementData, newCapacity),拷贝新数组,所以频繁添加元素,不适合 remove() 删除时,会计算移动元素个数,再拷贝到新数组,效率不行 get() 获取时,检查是是否越界后,直接通过索引,获取当前数组对应下标值,快 所有操作方法,都没有线程同步操作,不安全! //初始化,以及 add(.原创 2021-03-08 21:39:53 · 127 阅读 · 1 评论 -
Java 基础
类:一类抽象的事务,还不具体。 eg:人,是一个抽象的概念,是不是没有具体的表达,这个“人”指的是谁。 人拥有一些公共属性,age 、sex 、height ,和方法 eat() 、go() ;组成了一个类 Person public class Person { //人都有属性、方法 /** * 年龄 */ private int age; /** * 重量 */ private Double he.原创 2021-03-01 22:10:16 · 187 阅读 · 3 评论 -
Spring boot 自动装配 梳理记录 +简单自定义实现
启动类注解 @SpringBootApplication - 复合注解,其中包含 @EnableAutoConfiguration @EnableAutoConfiguration - 复合注解 开启自动配置 , 其中包含 @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) @AutoConfigurationPackage 其中 @Import({Registrar.class}) ,而 Reg..原创 2020-05-26 17:37:39 · 419 阅读 · 0 评论 -
AOP 操作日志注解记录
@Retention(RetentionPolicy.RUNTIME) @Target( { ElementType.METHOD }) public @interface OperationLogAnnotation { //操作描述 String desc() default ""; //操作表 String table() default ""; } 这里有获取注解参数的方法。 因为用了security,这是这样取了userId。获取用户id的方法有很多。 有获取原创 2020-05-25 09:45:25 · 702 阅读 · 0 评论 -
Spring boot AOP + 自定义注解实现用户请求日志记录(文件)
自定义注解 /** * @ClassName RouteLog * @Description 路由日志记录自定义注解 * @Author 何小树 * @Date 2019/11/7 15:10 **/ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interfac...原创 2019-11-08 00:31:46 · 322 阅读 · 0 评论 -
Java 线程池记录
概念: 线程池由任务队列和工作线程组成,它可以重用线程来避免创建的开销, 在任务过多时,通过排队避免创建过多线程来减少资源消耗和竞争。 ThreadPool 参数说明: // Java线程池的完整构造函数 public ThreadPoolExecutor( int corePoolSize, // 线程池长期维持的线程数,即使线程处于Idle状态,也不会回收。 int ...原创 2019-11-06 12:36:43 · 208 阅读 · 0 评论 -
File常用工具类, 流相关运用 (记录)
File类常用方法记录,IO流应用,(压缩文件处理,url文件下载)等... import java.io.File; //实用方法. // createNewFile() throws IOException 创建新文件 File file = new File("E:/新文件.txt"); // mkdirs() 创建多级目录 File file = new File("E:/aa/...原创 2019-07-27 15:49:06 · 1154 阅读 · 0 评论 -
Spring boot2.x 项目jar 线上部署 yml 配置 (记录)
Spring boot项目jar包,线上发布。linux指令记录,静态文件处理(图片),yml文件配置,这里记录一波。 描述: war包部署,jar部署。各自部署流程,以及自己的感受。 Spirng yml文件 配置. 项目部署: 项目线上部署时,以前一般都是 打个war包,放在配置好的tomcat /webapp里,./startup.sh 运行时,会自动解压文件,服务就启动了。Spr...原创 2019-07-20 11:23:52 · 800 阅读 · 0 评论 -
Java后台 JSON数据处理
后台处理接收到的json数据,这里记录几种格式,都是常见的。 com.alibaba.fastjson 阿里巴巴的包 格式:(普通嵌套) 取值: String scope= JSONObject.parseObject(res).getJSONObject("data").getString("scope"); 格式:(数组型) String json = "{\"data1\":[{...原创 2019-06-17 16:59:35 · 1690 阅读 · 0 评论 -
Java 反射
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。 优点: 增加程序灵活性。 提高代码复用性。 缺点: 反射操作的效率要比那些非反射操作低得多 ps:这肯定比你直接调用来慢得多。 反射大概比直接调用慢50~100倍,但是需要你在执行100万遍的时候才会有所感觉. 如果你只是偶尔调用一下反...转载 2019-03-01 13:41:17 · 145 阅读 · 0 评论 -
Java 自定义注解
Java基础篇记录 -- 自定义注解Annotaion 为什么要用自定义注解? 可保存在 class 文件中,降低维护成本。 无需工具支持,无需解析 编译期即可验证正确性,查错变得容易。 提升开发效率。 Annotation 缺点: 1、若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用。 2、配置项编码在 Java 文件中,可扩展性差。 实现过程: 一、定义注解 @...转载 2019-02-28 15:14:59 · 174 阅读 · 0 评论