- 博客(11)
- 收藏
- 关注
原创 java:抽象类与接口
使用 interface 定义一个接口,接口里的属性默认是 public static final,即使这3个关键字不写,属性仍然是静态的常量,因此属性必须赋值;抽象类也可以有普通类一样的成员变量和方法,只是抽象类是对某些类共性的提取,比如 class man 和 class woman 提取共性,可以定义一个抽象类 abstract class person。2.接口也可以extends另一个接口或者多个接口,可以不重写父亲接口的方法,但一个类实现了孩子接口,则必须重写孩子接口和父亲接口里的所有方法。
2024-03-15 00:07:18 522
原创 java:面向对象编程
初学编程时,在学习语法阶段,我觉得面向过程是很容易理解的,就像做一件事,有着固定的流程和步骤,按照步骤执行,就能得到相应的输出,而面向对象,一下子就懵了。用一个例子说明,面向过程,就像一个人干一件事,比如炒菜,如果是一个人,他必须自己买菜、洗菜、炒菜、装盘、上桌,亲力亲为,而面向对象,就像一群人干一件事,买菜的有买菜的对象,他只干买菜的活儿,洗菜的有洗菜的对象,他只干洗菜的活儿,编程人员只需要组织这些对象的执行流程,(尽管这一步也有面向过程的味道,因为炒菜之前得买好菜、洗好菜)。2.继承:对已有类的扩展。
2024-03-14 11:59:29 455
原创 cookie和session机制
当用户第一次访问时,正常注册登录后访问,可是当用户继续访问,发送第二个请求时,则需要再次登录,因为http请求是无状态的,所以为了解决重复登录的问题,可以在服务器端生成一个session对象用于保存用户的登录信息,同时将session对象通过响应的返回给客户端并保存在客户端的cookie中,后续客户端再次发送请求时,则在请求中携带cookie数据,服务器第二次及以后收到请求时,直接从cookie中获取session对象用于判断用户身份信息,而不需要用户再次输入用户名、密码登录的操作。
2024-04-02 13:34:40 169
原创 java:深浅拷贝
变量实际上代表的就是一块存储空间,拷贝就是将空间里的值完全复制给另一个变量,不管值是什么,都是直接复制过去。如果原变量存储的是基本数据类型,那么原变量存储的是一个值,拷贝过去的就是基本数据类型的值,则变量相互独立;在刚学编程时,一直记得一句话:方法传参时,形参是实参的临时拷贝,但对于什么情况下会影响原数据,什么情况下不会影响原数据,还是很懵。深拷贝:操作拷贝的数据,原数据不会发生变化(变量指向不同的对象,只是对象的属性和方法完全一样)浅拷贝:操作拷贝的数据,原数据也会发生变化(变量指向同一个对象)
2024-03-30 16:27:07 264
原创 java:包装类
何为泛型?实例化一个对象,就是开辟一块空间用于存储对象的属性,Java是强类型编程语言,在声明属性时,需要指定属性的数据类型,如果对象的某个属性是Object,意味着这个属性可以是任意类型(基本数据类型除外),因为Object类是所有类的父类,但是在获取和修改属性数据时,需要强制类型转换。可如果在定义这个类时,既不希望这个属性的类型是Object,但又想有一个属性用于占位置,以便在调用时用于存储数据,于是抽象一个类类型T,用于占位置,实例化时再具体指明这个属性的数据类型,泛型的概念就产生了。
2024-03-30 10:02:07 486
原创 java:String、StringBuilder、StringBuffer
而且通过反编译,String的 + 拼接字符串时,是通过创建StringBuilder对象的append方法,即创建"aaa"和一个空的StringBuilder对象,然后StringBuilder对象append("aaa"),然后append其他字符串,最后通过StringBuilder的toString方法,将StringBuilder对象转为字符串。创建String对象有两种形式,一种是直接赋值,如String s = "hello","hello"存储在字符串常量池;二、StringBuild。
2024-03-26 02:40:14 499
原创 java:内部类
在内部类里面,内部类不能直接访问外部类的非静态属性和非静态方法,需要在内部类里面创建一个外部类的实例对象,通过对象访问;外部类可以在外部类里面通过创建内部类(非匿名内部类)的实例,访问内部类的所有属性和方法,即使是private修饰。也叫实例内部类,内部类不能有静态属性和静态方法,但是可以定义静态常量。在其他类创建内部类实例时,使用Outer.Inner obj = new Out.Inner();内部类:定义在类内部的类,类的嵌套,有内部类和外部类之分。
2024-03-17 21:22:26 380
原创 java:比较运算符(二) > 、 < 、 Comparable接口、Comparator接口
基本数据类型(除boolean外)可以直接通过 > 和 < 进行大小比较,而对于引用数据类型比较大小时,通常是根据某个属性进行比较,可以通过实现Comparable接口的compareTo() 方法或者Comparator接口的compare()方法。自定义Student类实现Comparable接口并重写compareTo方法,当两个Student对象比较大小时,可以通过stu_1.compareTo(stu_2)进行比较,返回值为两者之差,若大于0则stu_1比较大。
2024-03-14 20:59:24 547
原创 java:比较运算符(一)==和equals
比如自定义user类,这个类里有一个属性 int userId,现new 了两个user对象,如果这两个对象的userId属性的值相等,则认为是相同的对象,那需要在user类重写equals方法。java中有两类数据类型,一类是基本数据类型,byte、short、int、long、float、double、char、boolean,另一类是引用数据类型,引用数据类型可以通过引用,找到相应的对象,比如 int[] arr = { } ,可以认为arr的值就是引用,通过引用找到数组对象。
2024-03-14 17:04:18 353
原创 java:不支持一个类extends多个类
虽然看似C可以重写方法,但如果B的参数列表和A的参数列表不同?加大了类在设计和开发上的复杂性,可能造成继承层次膨胀。菱形继承(钻石继承)会导致底层子类在调用方法时存在二义性。2.可以将A类对象、B类对象作为成员属性给到C。一、多继承的潜在问题——菱形继承。1.可以实现多接口达到类似效果。
2024-03-13 09:48:50 566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人