java
前行_的路上
这个作者很懒,什么都没留下…
展开
-
对象的toString()方法
public class TestList { public static void main(String[] args) { Collection<String> c = new ArrayList(); System.out.println(c.size()); c.add("zhaolaoda"); c.add("zhaolaoer"); System.out.println(c);//打印引用变量.原创 2020-12-01 19:22:58 · 873 阅读 · 0 评论 -
Java中打印“变量地址”
system.out.println(Integer.toHexString(s1.hashCode()));原创 2020-12-01 15:42:55 · 2454 阅读 · 1 评论 -
String类型的对象是不可修改的,为什么我可以重新赋值呢?
String str = "aabbaabb";//str指向常量池中的"aabbaabb"System.out.println(Integer.toHexString(str.hashCode()));str = "sss";//并没有更改字符串的值,而是自动装箱又产生了一个新对象System.out.println(Integer.toHexString(str.hashCode()));//在控制台输出可以看到当前的指向"sss的"str的地址已经改变,说明是产生了一个新的对象,str这个引用.原创 2020-11-24 15:16:05 · 2264 阅读 · 0 评论 -
Arrays类,Integer类,Object类中各自的toString()方法
Arrays类中,该方法是将数组完全打印出来Integer类中,该方法时将基本数据类型转换为字符串类型Object类中,该方法获得对象的地址Hashcode原创 2020-11-24 15:08:33 · 155 阅读 · 0 评论 -
引用传递的必要条件
1、传递的实参是引用变量2、该函数改变了引用变量所指向的内容原创 2020-11-22 23:47:25 · 153 阅读 · 0 评论 -
Java重写接口时为何非要加public
public interface A{//定义一个接口 void show();//没有修饰符,默认修饰符是public public void show1();//显示定义修饰符是public} public class A1 implements A{ public void show(){//不能缩小使用范围,原来定义的是public,现在只能是public } public void show1(){//不能缩小使用范围,原来定义的是public,现在只能是pu.原创 2020-11-22 09:39:31 · 489 阅读 · 0 评论 -
多态
d在编译器看来是一个animal类型,但运行的时候是使用dog的方法,因为d在堆内存中是dog类型。若想调用d中有而animal类中没有的方法,编译器会报错,因为编译器还是认为d是animal类型。所以这时需要强制向下转型。...原创 2020-11-21 22:11:09 · 108 阅读 · 0 评论 -
字符串变量初始化方式不同其引用变量也不相同
我们知道java中字符串常量是放在常量池中的,str10和str11采用静态初始化,两个变量指向的是相同的地址,即他们存储的地址相同,因此结果是true。但str12初始化时建立了一个新的对象,因此指向的地址就不同了,所以结果时false...原创 2020-09-23 18:04:25 · 127 阅读 · 0 评论 -
静态初始化和动态初始化
原创 2020-09-20 18:15:59 · 271 阅读 · 0 评论 -
final修饰方法,方法可以重载但不可以被子类重写
在animal类中重载了shout方法,但子类dog和cat中重写shout方法报错原创 2020-09-19 15:51:24 · 2413 阅读 · 0 评论 -
final的三个基本作用
原创 2020-09-19 15:44:17 · 215 阅读 · 0 评论 -
自动向上转型强制向下转型
原创 2020-09-19 15:40:31 · 140 阅读 · 0 评论 -
多态的三个必要条件
原创 2020-09-19 11:05:16 · 1935 阅读 · 0 评论 -
继承中构造方法和静态静态初始化块的执行顺序
原创 2020-09-17 16:41:21 · 93 阅读 · 0 评论 -
静态属性导入
引用格式如图,importstaticpackage.class.*或import static package.class.variable原创 2020-09-14 19:39:33 · 82 阅读 · 0 评论 -
静态初始化块(继承)执行顺序
静态初始化块执行顺序:1、上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。2、构造方法执行顺序和上面顺序一样!!!...原创 2020-09-12 21:31:13 · 141 阅读 · 0 评论 -
This的用法
在构造器中不能直接使用另一个构造器。这时,就可以使用This了但是这句话必须放在构造方法的第一句!!this不能使用在静态方法中,静态方法在编译时最先编译,而this是依赖于对象存在的。...原创 2020-09-12 21:08:46 · 625 阅读 · 0 评论 -
can not make a static reference to the non-static field variable错误原因
出错的原因在于,在静态方法中使用了非静态变量。即在静态方法中,不能直接访问非静态成员。这是因为非静态成员是依赖于实例化对象的,对象必须实例化之后,它的变量才会在内存中存在。...原创 2020-09-08 19:42:51 · 701 阅读 · 0 评论 -
“\t“和‘\t‘区别
System.out.print(i+"\t");这一语句中“+”不会把转义符号'\t'当作整型求和,而是充当了连字符。System.out.print(i+'\t');这一语句中“+”把转义符号'\t'当作整型求和,因为两边都不是字符串,充当运算符。...原创 2020-09-05 17:06:02 · 1693 阅读 · 0 评论 -
逻辑运算符和位运算符
&&只能作(短路)逻辑运算符||只能作(短路)逻辑运算符上图中报错的原因就是操作数类型不对原创 2020-09-03 19:12:06 · 87 阅读 · 0 评论 -
计算机中的数字都以补码形式存储,小容量的数据类型可以自动—>大容量,反之不可
原创 2020-09-03 18:10:36 · 152 阅读 · 0 评论 -
java中的“+”的多功能
“+”我们通常在System.out.println(""+x+y);语句中充当连接符。在上图中,第一个输出语句里只填写s1的话,控制台只会打印出 a第二个输出语句,运用加法运算符的性质,若参与运算的两个数只要是整数(包括char),就会自动转换为int类型。有一个是long类型那么结果就是long类型。输出结果为 97第三个输出语句则是直接使用了强制类型转换。输出结果为 97...原创 2020-09-03 17:30:32 · 514 阅读 · 0 评论 -
二元运算符+和%
1、整型数求和运算int a3 = a1+a2; 若a1和a2这两个数中某一个数的类型是long类型,那么结果就是long类型,编译器将会报错,需要将int a3改为long a3。2、浮点数求和运算float a3 = a1+a2; 若a1和a2这两个数中某一个数的类型是double类型,那么结果就是double类型,编译器将会报错,需要将float a3改为double a3。3、取余如:-9%2=?负数取余规则:余数应与被取余数的符号保持一致,所以...原创 2020-09-03 16:59:57 · 309 阅读 · 0 评论 -
为什么给long类型的变量初始化需要加L?
byte a =30; short b = 30000; int c= 200000000; long d = 74000000000L;等号后面的这些数字不仅仅只是数字,这些数字其实是常量。这些式子的真正含义是说将常量转化为变量。30,30000,200000000这三个数系统默认将他们作为int类型的常量,在对a,b,c三个数字赋值的过程也是将int类型常量转换为byte,shorti,int(本身就是int)三种类型的过程。而...原创 2020-09-02 16:21:50 · 3271 阅读 · 2 评论 -
类变量和成员变量声明之后就可以使用
类变量和成员变量声明之后就可以使用,而局部变量从属于方法,必须要赋初值原创 2020-09-02 11:51:19 · 217 阅读 · 0 评论 -
变量从属
局部变量从属于方法;成员变量从属于对象;静态变量从属于类原创 2020-09-01 20:38:36 · 640 阅读 · 0 评论 -
java变量是否可以自动初始化
java中 局部基本变量不会自动初始化,使用之前若仅仅只声明没有初始化将会报错而成员变量声明之后按照一定的规则会自动初始化,如int类型的成员变量声明后就会自动初始化为0原创 2020-09-01 19:35:37 · 587 阅读 · 0 评论