自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 第七章 异常、断言和日志

spring的事务@Transaction与try/catch之间的冲突:如果方法上标注了使用事务,但是在方法内部又使用了try/catch对代码异常进行了捕获,需要在catch方法内重新抛出异常,事务才能捕捉到异常,进行回滚操作。所以一般在finally块里面会执行:I/O流的关闭,数据库链接的关闭,锁的释放等释放资源的操作。catch代码块:捕获的异常类型,可声明多个catch代码块,进行不同的异常捕获处理,同时也可以在catch块中抛出异常。try代码块:正常执行的业务逻辑,可能会出现异常的代码块。

2024-01-30 20:20:43 239

原创 第六章 接口与内部类(2)

创建一个代理类如下:实现InvocationHandler接口创建自己的调用处理器(在该处理器中重写invoke方法,可以动态的添加实现额外的逻辑,AOP的实现原理)根据其作用域,内部类可以分为四种:局部内部类,匿名内部类,静态内部类,成员内部类。因为可以省去创建子类和实现类的过程, 匿名内部类的最终产物是子类/实现类对象。局部内部类的优势:对外部类完全的隐藏起来,外部类的其他方法也无法访问局部内部类。不清楚接口的实现类的情况下,匿名内部类可以实现接口的实例化调用。1、内部类可以对同一包中的其他类隐藏;

2024-01-19 16:23:31 333

原创 第六章 接口与内部类(1)

1、抽象能力:接口和抽象类都可以包含抽象方法,这意味着它们都定义了一些方法但没有提供具体的实现。然而,接口中的所有方法都是抽象的,而抽象类则可以选择性地提供部分方法的实现。3、常量定义:接口中只能定义常量,且这些常量默认是public static final的,而抽象类既可以定义普通变量也可以定义常量。深拷贝:创建一个新对象,属性/方法值完全相同,但底层不是同一个对象,修改拷贝对象不影响原来的对象。接口:接口不是类,是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。

2024-01-18 00:14:07 343

原创 第五章 继承(2)

防止单例被破坏的实现原理,反射破坏单例模式重点在于反射能够获取到单例的构造方法,并且调用构造方法构建对象。Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,在Java领域中,反射是一个很强大有很复杂的机制。反射的核心类Class类(类对象)

2024-01-16 21:38:26 364

原创 第五章 继承(1)

如上述代码所示,n/m,i/j之间的比较是int与Integer的比较涉及到了自动拆装箱之间的转换,-128 ~ 127之间的数会存在与缓存池中, 所以e和f对应的地址值是同一个,对象的比较结果也为true,其他通过new出来的对象之间的比较都是FALSE。子类sub重写父类P方法时,调用的是子类重写后的方法。P不能访问子类的getComplay()方法。3、子类继承抽象类,必定要实现抽象类中的抽象方法,且需要@Override注解标记子类方法。2、抽象方法的声明与普通方法不一样,抽象方法不具备方法体;

2024-01-15 23:53:16 574

原创 第四章 对象与类

每个类创建都会默认有一个无参构造,但是当我们实现了构造器以后,默认的无参构造会失效。final修饰基本类型数据,数据为常量,不可修改值,修改会有如下提示。final修饰对象,对象的引用不可变,对象的属性值可变。static方法只能调用static修饰的成员变量。

2024-01-13 22:36:09 321

原创 第三章:Java基本程序设计结构(2)

2、数组长度一旦指定长度,长度将不可在变化,每个位置上的元素可以变化。使用jshell可以很清晰的看到,新建数组的默认初始值是多少。可以实现类似于goto的语法,跳出多层循环。1、初始化必须指定数组长度。1、常规用法:跳出当前层的循环。

2024-01-11 22:30:08 315

原创 第三章:Java的基本程序设计结构(1)

注意的是:在同一个工程中,多个不同的类文件中可以存在其他main方法,可以再运行时指定执行哪个main方法。整型byte,short,int,long,浮点型float,double,字符型char,布尔型boolean。3.1、一个最简单的Java应用程序Main.class,可能是每个Java程序猿入门接触的第一行代码。移位位运算符:<<(右移)、>>(符号位不变,右移)、>>>(符号跟着右移,前端补0)三类://(单行) 、/**/ (多行)、 /** */ (段)

2024-01-11 07:49:38 332

原创 Collections.sort()源码分析

题目描述(剑指offer)输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。代码如下:import java.util.Collections;import java.util.Comparator;import java.util.ArrayLis

2024-01-10 22:06:15 456

原创 Java核心技术(卷一)学习笔记

1、面向对象设计:讲重点放在数据(即对象)和对象的接口上。2、Java发展简史Java语言的演进版本年份新增语言特性1.01996语言第一版1.11997内部类1.21998strictfp修饰符1.32000无1.42002断言5.02004泛型、for each循环、可变元参数、自动装箱、元数据、枚举、静态导入62006无72011基于字符串的选择语句,棱形运算符、二进制字面量、异常处理增强82014lambda表达式、Stream流92017。

2024-01-10 22:04:45 512

原创 最小的K个数(剑指offer)

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4思路:(迭代)将数组前面的k个数单独取出来村为一个数组,将k后面的数与前面的k个数进行比较,如果小于前面k个数里面的数,就将k个数里面的最大数替换成这个数import java.util.ArrayList;public class Solution {

2017-08-30 11:08:45 163

原创 复杂链表的复制

题目描述(来源于牛客网)输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)代码:/*public class RandomListNode {    int label;    RandomListN

2017-08-30 08:40:37 151

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除