![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 基础
oftt
这个作者很懒,什么都没留下…
展开
-
显式转换和隐式转换
首先,我们来看一下基本数据类型之间的转换。 显式转换:从表示范围大的类型转换为表示范围小的类型,需要强制转换。 强制类型转换的语法格式就是加一个括号,然后给出想要转换的类型。 例如: double x = 9.876; int y = (int)x; 这个时候 y 的结果为 9。因为强制类型转换是通过截断小数点部分而将浮点型转换为整型。 隐式转换:从表示范围小的类型转换为表示范围大的类型,可以直接转换。 例: short x = 5; int y = x; 因为 int 可以存储的范围要比 short原创 2021-06-19 10:58:21 · 1693 阅读 · 1 评论 -
深拷贝和浅拷贝
深拷贝:把要复制的对象所引用的对象都复制了一遍。 浅拷贝:仅仅复制所考虑的对象,而不复制它所引用的对象。 原文链接:Java 深入理解深拷贝和浅拷贝转载 2021-05-14 14:01:36 · 49 阅读 · 0 评论 -
final关键字的一些总结
final 关键字主要用在三个地方:变量、方法、类。 当用 final 修饰一个变量时,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。 当用 final 修饰一个类时,表明这个类不能被继承。final 类中的所有成员方法都会被隐式地指定为 final 方法。 原文链接:JavaGuide_面试突击版 ...转载 2021-05-14 11:31:37 · 52 阅读 · 0 评论 -
值传递和引用传递
值传递表示方法接收的是调用者提供的值。 引用传递表示方法接收的是调用者提供的变量地址。 Java 程序设计语言总是采用值传递。也就是说,方法得到的是所有参数值的一个拷贝,也就是说,方法不能修改传递给它的任何参数变量的内容。 下面来看两个例子加深理解: 传递的是基本数据类型: public static void main(String[] args) { int num1 = 10; int num2 = 20; swap(num1, num2); System.out.转载 2021-05-14 11:14:45 · 66 阅读 · 0 评论 -
理解 String 类常量及对象
用于理解 String类常量和对象的例子: public static void main(String[] args) { String s1 = "AB"; String s2 = new String("AB"); String s3 = "A"; String s4 = "B"; String s5 = "A" + "B"; String s6 = s3 + s4; System.out.println(s1 == s2); //false转载 2021-05-14 08:51:34 · 410 阅读 · 0 评论 -
为什么重写了 equals() 还要重写 hashCode() ?
https://blog.csdn.net/qq_28051453/article/details/52701171转载 2021-05-14 08:35:08 · 60 阅读 · 0 评论 -
Java 面向对象编程三大特性: 封装 继承 多态
封装性 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。 继承性 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。 关于继承如下 3 点请记住: 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类转载 2021-05-12 15:38:44 · 54 阅读 · 0 评论 -
重载和重写的区别
重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。 重写: 重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。 返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。 构造方法无法被重写 综上:重载就是同一个类中多个同名方法根据不同的传参来执行不同转载 2021-05-12 15:33:51 · 96 阅读 · 0 评论 -
面向对象和面向过程的区别
面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。 面向对象 :面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。 这个并不是根本原因,面向过程也需要分配内存,计算内存偏移量,Java 性能差的主要原转载 2021-05-12 08:32:58 · 85 阅读 · 0 评论