自定义博客皮肤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 137

原创 代码块

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

2021-03-13 21:13:55 144

原创 单例设计模式

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

2021-03-12 21:28:26 65

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

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

2021-03-12 20:12:34 231

原创 内存图

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

2021-03-11 21:44:20 298

原创 基本数据类型、包装类以及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 95

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

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

2021-03-06 00:39:21 73

原创 Vector、ArrayList、LinkedList三者区别

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

2021-03-05 23:47:36 187

原创 String、StringBuffer、StringBuilder

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

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

原创 final、finally、finalize

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

2021-03-05 16:50:20 230 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 282 2

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

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

2021-03-03 00:39:20 181

原创 Spring IOC(控制反转)

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

2021-02-25 18:29:03 163

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

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

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

原创 动态规划解题步骤

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

2021-02-25 18:24:28 221

原创 static

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

2020-12-22 10:49:34 104

原创 重定向和转发

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

2020-11-29 21:59:39 120

原创 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 75

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

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

2020-08-07 10:55:30 92

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

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

2020-07-29 16:42:24 315

原创 泛型

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

2020-07-03 16:03:15 288

空空如也

空空如也

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

TA关注的人

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