同步操作将从 Java精选/Ebooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Java中static关键字不可以修饰局部变量。
static是用于修饰成员变量和成员方法的,它随着类的加载而加载,随着类的消失而消失,存在于方法区的静态区,被其修饰的成员能被类的所有对象共享,即作用域为全局;而局部变量存在于栈,用完后就会释放。作用域为局部代码块。
一、抽象和封装
类和对象体现了抽象和封装
抽象就是解释类与对象之间关系的词。类与对象之间的关系就是抽象的关系。一句话来说明:类是对象的抽象,而对象则是类得特例,即类的具体表现形式。
封装两个方面的含义:一是将有关数据和操作代码封装在对象当中,形成一个基本单位,各个对象之间相对独立互不干扰。二是将对象中某些属性和操作私有化,已达到数据和操作信息隐蔽,有利于数据安全,防止无关人员修改。把一部分或全部属性和部分功能(函数)对外界屏蔽,就是从外界(类的大括号之外)看不到,不可知,这就是封装的意义。
二、继承
面向对象的继承是为了软件重用,简单理解就是代码复用,把重复使用的代码精简掉的一种手段。如何精简,当一个类中已经有了相应的属性和操作的代码,而另一个类当中也需要写重复的代码,那么就用继承方法,把前面的类当成父类,后面的类当成子类,子类继承父类,理所当然。就用一个关键字extends就完成了代码的复用。
三、多态
没有继承就没有多态,继承是多态的前提。虽然继承自同一父类,但是相应的操作却各不相同,这叫多态。由继承而产生的不同的派生类,其对象对同一消息会做出不同的响应。
造器不能被继承,因为每个类名都不相同,而构造器的名称与类名相同,所以构造器不能被继承,也不能被重写。
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
Java和C++都是面向对象的语言,都支持封装、继承和多态。
Java不提供指针来直接访问内存,程序内存更加安全。
Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口可以多继承。
Java有自动内存管理机制,不需要程序员手动释放无用内存。
bind()方法负责把指定名称绑定给远程对象。
rebind()方法负责把指定名称重新绑定到一个新的远程对象。如果该名称已经绑定过了,先前的绑定会被替换掉。
一个内部类对象可以访问创建它的外部类对象的内容。
如果内部类没有被static修饰,那么它可以访问创建它的外部类对象的所有属性。否则会编译报错:
Cannot make a static reference to the non-static field
静态内部类只能访问静态成员。
如果内部类是被static修饰,即为nested class,那么它只可以访问创建它的外部类对象的所有static属性和static方法。
一个数字字符串,只能包含数字,如0到9以及+、-开头,通过这个信息,如下代码,正则表达式来判断给定的字符串是不是数字。
import java.util.regex.Pattern;
java.util.regex.Matcher;
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
两个对象hashCode()相同,使用equals()方法判断不一定为true。
两个对象hashCode()相同,只能说明哈希值相同,不代表这两个键值对相等。
String str1 = "通话";
String str2 = "重地";
// str1: 1179395 | str2: 1179395
System.out.println(String.format("str1: %d | str2: %d",str1.hashCode(),str2.hashCode()));
// false
System.out.println(str1.equals(str2));
区别如下:
作用域 | 当前类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。
Java BigDecimal类型的加减乘除运算调用方法:
加法:add() 减法:subtract() 乘法:multiply() 除法:divide()
实例代码如下:
BigDecimal b1 = new BigDecimal("10");
BigDecimal b2 = new BigDecimal("5");
BigDecimal b3 = null;
加法
b3 = b1.add(b2);
System.out.println("求和:" + b3);
减法
b3 = b1.subtract(b2);
System.out.println("求差:" + b3);
乘法
b3 = b1.multiply(b2);
System.out.println("乘法积:" + b3);
除法
b3 = b1.divide(b2);
System.out.println("除法结果:" + b3);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。