自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 final关键字

final可以修饰类、方法、变量(属性也是变量的一种)。 final在修饰类的时候表明该类不能够被继承; final在修饰方法的时候表明该类不能被重写; final在修饰变量的时候表明该变量就称为是一个常量。 final修饰属性时,属性可以考虑赋值的位置有:显示初始化、代码块中初始化、构造器中初始化。 final修饰局部变量时,尤其是修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参,一旦赋好以后,就只能在方法体内使用此形参,但不能进行重新赋值。 ...

2021-03-14 16:25:03 215

原创 代码块

代码块分为静态代码块和非静态代码块: 1. 静态代码块 执行:随着类的加载而执行,而且只执行一次。 作用:初始化类的信息。 特点:如果一个类中定义了多个静态代码块,则按照声名的先后顺序执行,静态代码块的执行要先于非静态代码块的执行。 2. 非静态代码块 执行:随着对象的创建而执行。 作用:可以在创建对象时,对对象的属性等进行初始化,每创建一个对象,就执行一次代码块。 特点:如果有多个代码块,则按照声名的先后顺序执行。 ...

2021-03-13 21:13:55 228

原创 单例设计模式

定义:所谓类的单例设计模式就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。 优点(为什么要用):单例模式只生成一个实例,减少系统性能开销,当一个对象的产生需要比较多的资源时(如读取配置、产生其他依赖对象),则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 实现方式1(饿汉式): 将类的构造器私有化(在构造器前面声名private)。 类内部创建一个实例(由于封装性,习惯性私有化)。 创建一个getInstance方法获取该实例,由于构造器私有化所以不能创

2021-03-12 21:28:26 151

原创 开发中 ,如何确定一个属性或方法是否要声名为static?

属性:这个属性是可以被多个对象所共享的,不会随着对象的不同而不同的。 方法:操作静态属性的方法,通常设置为static的(如get set);工具类中的方法,习惯上声名为static(因为工具类中的方法一般拿来直接用,new对象再调用没意义,因为生成不同对象调用该方法还是一样的目的和效果),常用的如Math、Arrays、Collections。 ...

2021-03-12 20:12:34 315

原创 内存图

内存中包括三块内容:栈、堆以及方法区。 栈:局部变量 堆:new出来的结构–对象、数组 方法区:类的加载信息、静态域、常量池

2021-03-11 21:44:20 383

原创 基本数据类型、包装类以及String三者之间的转换

基本数据类型和其包装类之间的转换 JDK 5.0新特性:自动装箱(自动将基本数据类型转为包装类)与自动拆箱(自动将包装类转为基本数据类型)。 //自动装箱 int a = 1; Integer b = a; //自动拆箱 Integer c = new Integer(1); int d = c; 基本数据类型即包装类转为String 调用String重载的valueOf(Xxx xxx) String转为基本数据类型和包装类 调用包装类的parseXxx(String s) ...

2021-03-11 15:02:10 183

原创 Hashtable、HashMap、TreeMap有什么不同?

Hashtable、HashMap、TreeMap 都是最常见的一些 Map 实现,是以键值对的形式存储和操作数据的容器类型。 Hashtable Hashtable 是早期 Java 类库提供的一个哈希表实现,本身是同步的,不支持 null 键和值,由于同步导致的性能开销,所以已经很少被推荐使用。当时不允许null是因为希望每个key都会实现hashCode和equals方法,而null不可以。后来大家都意识到nul值的重要性,所以HashMap允许null值的key和value,当key为null时,会

2021-03-06 00:39:21 145

原创 Vector、ArrayList、LinkedList三者区别

三者都是实现集合框架中的List,为有序集合,具体功能相似。 Vector Vector是线程安全的动态数组,如果没有线程安全需要,不建议选择。Vector是使用对象数组来保存数据,可以根据需要自动增加容量,当数组已满时,创建新数组,拷贝原有数组中的数据到新数组中去。Vector在扩容时会提高一倍。 ArrayList 也是动态数组实现,本身不是线程安全的,所以性能要好很多。ArrayList也会根据需要自动调整容量,不过ArrayList在扩容时会增加二分之一。 LinkedList 双向链表,不需要像以

2021-03-05 23:47:36 268

原创 String、StringBuffer、StringBuilder

String String是非常典型的Immutable(一成不变的)类,该类被声名为final class。由于它的不可变性,类似于拼接、裁剪字符串等动作,都会产生新的String对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显的影响。 String s1 = "aaa"; // 创建的字符串在字符串常量池中 String s2 = new String("aaa"); // 创建的字符串对象在堆中 StringBuffer StringBuffer是为解决上面提到的操作产生过多中

2021-03-05 17:28:17 274 2

原创 final、finally、finalize

final final可以用来修饰类、方法、变量,final修饰的类代表不可以被继承扩展(类中方法都被隐式设置为final,类中成员变量可以被定义为final或非final形式),final修饰的方法不可以被重写,final修饰的变量是不可以修改的(常量)。 finally finally是Java保证重点代码一定要被执行的一种机制。可以使用try-finally或者try-catch-finally来进行类似关闭JDBC连接、保证unlock锁等动作。 finalize finalize是基础类java.

2021-03-05 16:50:20 325 2

原创 关于String

public class test { public static void main(String[] args) { String a = "hello"; new test().method(a); System.out.println(a); } public void method(String str) { str = "world"; } } 对于以上程序,看似输出的结果应为world,但是实际输

2021-03-03 22:21:11 385 2

原创 方法的重载、值传递机制

方法的重载 定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数不同或者参数类型不同即可。 特点:与返回值类型无关,只看参数列表,参数列表必须不同。 目的:可以根据不同的需求实现相同功能。如add方法的重载可以针对整型之间相加或浮点型之间相加等不同的需求(参数类型不同,数量不同)实现相同功能(传入的参数值相加)。 值传递机制 如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。 ...

2021-03-03 00:39:20 239

原创 Spring IOC(控制反转)

一、IOC概念 什么是IOC? 将对象创建以及调用过程交给Spring进行管理。 为什么要使用IOC? 降低耦合度 IOC容器实现的两种方式: BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员使用(加载配置文件的时候不会创建对象,在获取对象时才会创建对象) 2.ApplicationContext接口:BeanFactory接口的子接口,提供更多更强大的功能,提供给开发人员使用(加载配置文件时候就会把在配置文件对象进行创建) 二、IOC容器-Bean管理

2021-02-25 18:29:03 229

原创 基本数据类型和引用数据类型

Java提供了两种数据类型:一种是基本数据类型、一种是引用类型。 #####基本数据类型包括了八种数据类型: 数值型:1.整数型:byte、int、short、long 2.浮点型:double、float 字符型:char 布尔型:boolean #####引用数据类型包括了三种: 类(class)、接口(interface)、数组(array) #####变量含义: 内存中开辟的一个存储空间,给空间赋值一个名字,来区分多个存储空间。 #####基本数据类型和引用数据类型对比: 基本数据类型 引用

2021-02-25 18:26:05 633 2

原创 动态规划解题步骤

1.确定状态 解动态规划的时候需要一个一维或二维数组,需要确定数组代表什么**(难点)**,dp[i]或dp[i][j]。 2.建立转移方程 可以通过最后一个dp时如何推导出来的,来建立转移方程。 3.初始条件和边界情况 根据题目已知条件得到初始条件(dp[0]、dp[0][j]、dp[i][0]等)。 ...

2021-02-25 18:24:28 416

原创 static

static 表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态代码块。但是java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 因此只要这个类被加载,JVM就能根据类名在运行时数据区的方法区内定找到他们。而static对象可以在它的任何对象创建之前访问,无需引用任何对象。 静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属

2020-12-22 10:49:34 163

原创 重定向和转发

重定向和转发的特点 重定向的特点: 地址栏发生变化 重定向可以访问其他站点(服务器)的资源 重定向是两次请求 转发的特点: 转发地址栏路径不变 转发只能访问当前服务器下的资源 转发是一次请求 ...

2020-11-29 21:59:39 178

原创 request和response

request和response对象 原理: request和response对象是由服务器创建的。我们来使用它们 request对象是来获取请求消息,response对象是来设置响应消息 流程: tomcat服务器会根据请求url中的资源路径,创建对应的 ServletDemo的对象 tomcat服务器,会创建request和response对象,request对象中封装请求消息数据 tomcat将request和response两个对象传递给service方法,并且调用service方法 程序员可

2020-11-27 21:33:43 142

原创 java中“=”、“equals”和“hashcode的区别”

== “==”比较的是地址值,地址值一样返回True equals “equals”比较的也是地址值,与“==”一样,但是可以覆盖重写,重写之后一般是通过对象的内容来判断对象是否相等 Hashcode 可以通过hashCode()方法来产生对象的哈希值进行比较,但是不同类有可能产生相同的哈希值,所以不太可靠 ...

2020-08-07 10:55:30 158

原创 多线程程序的两种实现方式

多线程程序的两种实现方式第一种方式实现步骤代码第二种方式实现步骤代码 第一种方式 实现步骤 1.创建一个Runnable接口的实现类,重写其中的run方法,设置线程任务 2.创建一个Runnable接口的实现类对象 3.创建Thread对象,构造方法中传递Runnable接口的实现类对象 4.调用Thread类中的start方法,开启新线程执行run方法 代码 创建接口的实现类,重写方法 public class RunnableImpl implements Runnable { @Overri

2020-07-29 16:42:24 420

原创 泛型

定义和使用含有泛型的类泛型定义和使用一个不使用泛型的类定义和使用一个含有泛型的类 泛型 1.定义一个含有泛型的类,模拟Arraylist集合。 2.泛型可以是一个未知的数据类型,当我们不确定什么数据类型的时候,可以使用泛型。 3.泛型可以接收任意的数据类型,可以使用String、Integer、Student… 4.创建对象的时候确定泛型的数据类型。 定义和使用一个不使用泛型的类 确定使用的数据类型为String public class GenericClass { private String

2020-07-03 16:03:15 407

空空如也

空空如也

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

TA关注的人

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