大家好,我是小小刀,很高兴又和大家见面了,来吧,知识点分享走起!
开场白
新的一周开始啦,一周的时间,看着小伙伴在群里面的进步,很开心,对我来说,也复习了很多知识点,这是一个共同学习,进步的过程。加油,小伙伴们!!
周末分享
提问值传参和引用传参(宋小刀)
源分享
public class MyClass {
public static void main(String[ ] args) {
int x = 5;
addOneTo(x);
//输出的还是5
System.out.println(x);
}
static void addOneTo(int num) {
num = num + 1;
}
}
回答(java小白)
java中方法参数传递方式是按值传递。
如果参数是基本类型,传递的是基本类型的字面量值的拷贝。
如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝
宋小刀同学查资料学习后的分享
原始类型的参数,传的这个参数的副本(相当于copy了一个出来)。。。函数中改变了副本(copy的那个)不会改变这个参数(原来的那个)
引用类型的参数,传的就是这个参数的副本(参数的地址),如果没有改变了这个参数的地址,那么改变了的副本会传入到该参数里面。。。
String对象一旦创建不可修改(lmbby)
源分享
String str = "abc";
System.out.println(str); // abc
str=str+"de";
System.out.println(str); // abcde
这段代码实际执行是:JVM先创建一个String对象str 赋值“abc”,第三行JVM再创建一个新对象也命名str,将原来的str值和"de"拼接赋值给新的str;
而第一行的str就被JVM的垃圾回收机制回收掉了。
JAVA对String对象的操作实际上是一个不断创建新对象并将旧的对象回收的过程
扩展
学习代码有三步曲,1,顺手点开源码看看,2,看看编译后的.class文件,3, javap -v *.class 看看 ,对于这个知识点,小伙伴们可以尝试下
声明常量时使用final(追风人)
源分享
声明常量时可以在变量前加上final,常量名都大写;常量名有多个单词组成时用下划线将各单词分开。
扩展
final 不仅仅是可以修饰变量,还可以修饰类,方法,小伙伴们可以看下final修饰不同地方时的特性
三大特性之继承的理解(柚是你)
源分享
1.子类是否可以继承父类对于接口的实现?
可以。准确的说子类从父类中继承来的都是父类的方法,没有接口的区别了。
2. 子类在什么情况下必须实现父类中的方法?
父类是抽象类,子类不再派生下一级的子类了。
扩展
这个知识点可以和上篇分享的加了static 的继承,加泛型的继承一共来看,把继承的这个知识点给消灭掉
看,慢慢的,我们分享的知识点就串联起来了,形成了一个体系,一个整体!
Integer用 == 比较的特殊性(smile@)
源分享
Integer i1 = 100;
Integer i2 = 100;
System.out.println(i1==i2);
Integer i3 = 1000;
Integer i4 = 1000;
System.out.println(i3==i4);
为啥100是true,1000就是false
回答(java小白)
在给Integer 赋值时,实际上是自动装箱的过程,也就是调用了Integer.valueOf(int)方法,当这个值大于等于-128,并且小于等于127时使用了常量池,所以前两个地址是相等的,但是后两个超过了127,故不使用常量池
扩展
学习代码有三步曲,1,顺手点开源码看看,2,看看编译后的.class文件,3, javap -v *.class 看看 ,对于这个知识点,小伙伴们可以尝试下(好把,我又把这段话复制了一遍,说明非常非常的重要),对于这个知识点,可以点开看看源码,是怎么缓存的
++i,i++的区别(java小白)
源分享
public class Test{
public static void main(String[] args){
firstMethod(0);
twoMethod(0);
}
public static void firstMethod(int a){
for(int i=0; i<=100; i++){
a = a++;
}
System.out.println("first"+a);
}
public static void twoMethod(int a){
for(int i=0;i<=100;i++){
a = ++a;
}
System.out.println("two"+a);
}
}
扩展
如果是我,我会问 ++ 是对栈上操作还是对局部变量表操作,学习代码有三步曲,1,顺手点开源码看看,2,看看编译后的.class文件,3, javap -v *.class 看看 ,对于这个知识点,小伙伴们可以尝试下(好把,我又把这段话再复制了一遍,说明非常非常的重要!!!!)
最后说两句
坚持的人一如既往,装睡的人一睡不醒,但时间都在一步一步的往前走着,不会为谁停留,这些时间,我时不时的就会焦虑,时间真的是走的太快了,时代也发展的太快了,连尾巴都没抓住就迎来了新的浪潮,在此期间,唯有沉下心来坚持,学习。有人问我是不是已有了目标,其实并没有,甚至怎么做我也不知道,只知道现在这样坚持学习下去是没错的,少年郎加油吧!
想进群一起互相监督学习的小伙伴可以加小刀微信进群:
best396975802