
JAVA笔记
文章平均质量分 67
snow_7
想当个花瓶的程序媛
展开
-
Spring事务总结
Spring可以使用编程式事务,也可以使用声明式事务。不过一般用的多的是用声明式。1、Spring事务的四种隔离级别MySQL事务有四个特性:ACID原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。隔离性(Isolation):可能有许多事务会同时处理相同的数原创 2021-03-21 16:01:48 · 265 阅读 · 0 评论 -
Spring的IOC和AOP
Spring最根本的使命上: 简化Java开发。DI所带来的最大收益——松耦合。对象之间的依赖关系交由Spring的IoC容器依赖注入的本质就是装配,装配是依赖注入的具体行为用更通俗的话来说,IoC就是指对象的创建,并不是在代码中用new操作new出来的,而是通过Spring进行配置创建的。为了降低Java开发的复杂性, Spring采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程; 通过依赖注入和面向接口实现松耦合; 基于切面和惯例进行声明式编程;原创 2021-03-21 15:11:53 · 253 阅读 · 0 评论 -
mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [list]
1.查看parameterType的类型是不是java.util.List类型,如果是的话,看foreach 的collection属性是不是list,因为 传递一个 List 实例或者数组作为参数对象传给 MyBatis,MyBatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键2.看一下fo...原创 2019-12-01 19:49:53 · 607 阅读 · 0 评论 -
Maven 打包 package install deploy 命令的含义和区别
mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。package命令:完成项目编译、单元测试、打包功能,但打包文件未部署到本地Maven仓库和远程Maven仓库。mvn clean install依次执行了clean、resources、compile、...原创 2019-10-25 16:02:11 · 402 阅读 · 0 评论 -
@Data注解不会涉父类的成员的坑,需要加callSuper = true的参数
lombok项目的产生就是为了省去我们手动创建getter和setter等基本方法的麻烦,它能够在我们编译源码的时候自动帮我们生成getter和setter等方法。即它最终能够达到的效果是:在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法要注意@EqualsAndHashCode注解与@ToString注解默认情况下是忽略父类的成员变量的...原创 2019-10-11 15:44:14 · 9912 阅读 · 1 评论 -
BeanUtils只拷贝对象非null属性
在最近做项目的时候,使用到了对象copy,而只需要拷贝源对象的非空属性,为null的属性不进行吧copy。而BeanUtil.copyProperties(sourceObject,targetObject);查了资料,解决方法如下:1 、hutool开源库为我们提供了更为强大的Bean工具-BeanUtil引入依赖<dependency> <g...原创 2019-09-29 18:24:05 · 4750 阅读 · 0 评论 -
如何清楚的理解REST以及Restful
1、什么是REST?看很多对REST的解释就是REpresentational State Transfer,直接翻译为:表现层状态转移。这个概念看上去很是懵逼。以下是自己看了网上一些通俗的解释整理下来的:全称是Resource Representational State Transfer,通俗的来讲就是:资源在网络中以某种表现形式进行状态转移。要想理解这句话首先需要弄清楚什么是资源...原创 2019-07-22 20:21:27 · 555 阅读 · 0 评论 -
IDEA创建SpringBoot无法连接https://start.spring.io
在公司用IDEA创建SpringBoot项目的时候遇到网络连接不上,在浏览器却可以正常访问。公司一般都使用代理解决方法:1、看下浏览器中的网络代理,将代理服务器中地址,端口2、对应填在idea中Settings--》HttpProxy中HostName和Portnumber之后就可以连通了...原创 2018-06-05 23:04:38 · 4804 阅读 · 0 评论 -
SpringBoot微信点餐项目--数据库设计1
项目中一共设计到五张表1、商品表CREATE TABLE `product_info` (`product_id` VARCHAR ( 32 ) NOT NULL,`prodcut_name` VARCHAR ( 64 ) NOT NULL COMMENT '商品名称',`product_price` DECIMAL ( 8, 2 ) NOT NULL COMMENT '单价',`prod...原创 2018-06-03 11:15:15 · 2107 阅读 · 6 评论 -
java中对象的引用类型及判断对象是否存活的算法
堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象)1.引用计数算法 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。 (1)原创 2016-08-19 10:27:45 · 3031 阅读 · 0 评论 -
深入浅出java IO模型
一、同步和异步同步:一个事件或者任务的执行,会使整个流程暂时等待,也就是说如果有多个任务要执行,必须要逐个进行。异步:一个事件或者任务的执行,不会使整个流程暂时等待,也就是说如果有多个任务要执行,可以并发去执行。同步和异步的关键在于一个事件或者任务的执行是否会导致整个流程暂时等待。也就是任务是逐个完成的吗二、阻塞和非阻塞阻塞:在某个事件或者任务执行的过程中,它发出了一个请求,但原创 2016-07-19 09:33:23 · 2758 阅读 · 0 评论 -
深入解析java中的接口和抽象类
一、 抽象类(1)抽象方法:(1)必须有abstract关键字修饰,抽象方法没有方法体,只有方法的签名; (2) 抽象方法只能由public或者procted关键字修饰。(2)抽象类:(1)必须由abstract关键字修饰,抽象类中可以没有抽象方法;(2)抽象类不可以被实例化;(3)抽象类中可以包含属性、方法(抽象方法和普通方法)、构造器、方法块、内部类、枚举类。但抽象原创 2016-07-06 17:07:31 · 357 阅读 · 0 评论 -
Java集合详解系列----Java集合继承体系详解
Java的集合类是一种特别有用的工具,它可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如栈、队列等。Java集合还可以用于板寸具有映射关系的关联数组。java集合就像是一个容器,我们可以把多个对象(实际上是对象的引用,习惯上叫对象,)保存到集合容器中。在JDK1.5以前java集合会丢失容器中所有对象的数据类型,JDK1.5以后增加了泛型,java集合可以记住容器中对象的数据类型。原创 2016-06-30 16:03:19 · 7289 阅读 · 2 评论 -
Java中字符串的创建与储存(附:常见笔试面试题)
常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = "java"这种申明方式;当然也可扩充,执行器产生的常量也会放入常量池,故认为常量池是JVM的一块特殊的内存空间。一、字符串的创建与初始化在java中创建并初始化一个String对象,最常见的有两种方式(1)String st原创 2016-06-27 22:12:49 · 1792 阅读 · 0 评论 -
Java的异常处理机制
Java的异常处理可以让程序具有更好的容错性,程序更加健壮。当程序出现意外情况的时候,系统会自动生成一个Exception对象来通知程序,从而实现将“业务功能实现代码”和“错误处理代码”分离,提供更好的可读性。一、异常类的继承体系(1)在java中把异常当作对象来处理,并且定义一个基java.lang.Throwable作为所有异常的超类。在java API中定义很多异常类,jav原创 2016-06-27 10:43:11 · 473 阅读 · 0 评论 -
Java中的隐藏和覆盖
1、编译时类型和运行时类型 Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型编译时类型:由声明该变量时使用的类型决定运行时类型:由该变量指向的对象类型决定如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。如 Fath原创 2016-06-03 15:28:32 · 18965 阅读 · 12 评论 -
Java中初始化顺序
一、无继承情况时的初始化顺序1、静态代码块和静态成员初始化(按照他们在程序中的先后顺序执行)2、普通成员变量初始化3、构造函数 class A { public A() { System.out.println("A的无参构造方法被调用"); } public A (String s) { System.out.原创 2016-05-30 21:44:31 · 412 阅读 · 1 评论 -
Java类加载与初始化
一、类的生命周期(1)虚拟机的加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括 加载(即生成Class对象)->链接(验证+准备+解析)(即相当于jvm编译,会给类静态变量默认值)原创 2016-05-31 15:42:35 · 1031 阅读 · 0 评论 -
Java中变量的内存分配
Java内存管理分为两个方面:内存分配 内存回收这里的内存分配特指当创建一个java对象时JVM为该对象在堆内存中分配内存空间。内存回收:当java对象失去引用,变成垃圾时, JVM的垃圾回收机制会(1)自动清理该对象(2)回收该对象所占用的内存。虽然JVM内置了垃圾回收机制,但是java程序依然会存在内存泄漏,如果肆无忌惮创建对象,让系统分配内存,最后由垃圾回收原创 2016-05-30 11:20:00 · 2021 阅读 · 0 评论