实验室周报

  • 这周身为后台组的萌新,刚刚接触了java的基础知识,从面相过程的c语言跳转到面向对象
    java一时还有点不适应,基础语法虽然都懂,但是还是有一些新知识要记到“小本本”上的。

1、for循环里面有一个新知识点:

	  (小标签) out:for(i=0;i<n;i++){
	                          for(j=0;j<m;j++){
	                                  if(2*i<j)break out;
	                          }
	                }
   即想要通过内层嵌套循环来跳出外层循环,可以使用给外循环标签的形式来控制外层循
   环跳出。

2、数组方面的知识:
比如说给定一个数组和一个待拷贝数组,你有三种方法可以做:
1)使用for循环来进行拷贝,当然除了for(i=0;i<n;i++)还有一种形式for(int temp:数组名),这个
简单表达方式呢,适用于不牵扯数组的更改,知识从头到尾的遍历;但是真的很方便;
2)使用System.arraycopy(原数组,开始拷贝的索引,目标数组,待开始拷贝索引,拷贝长
度)可以进行连续拷贝;(但是有一个疑问就是,如果不是连续拷贝就只能用第一种方法
吗?)
3)使用java自带的数组工具类,即:java.util.Arrays.copyOf(原数组,长度),虽然看起来
很牛,但是其源代码还是调用了System.arraycopy(原数组,开始拷贝的索引,目标数组,待
开始拷贝索引,拷贝长度)这个工具类。而且默认的拷贝开始索引为0,不够智能,所以不值
一提。
还有呢数组的输出格式java也有相应的方法 java.util.Arrays.toString(dest) 输出效果是
[1,2,3,4,5] 。

3、方法的重载和构建器的重载:
为了避免实现同一功能而另外创建方法或者构建器,java有重载的操作,即
1)方法:遵循两同一不同原则:在同一个类中,且方法名相同,但(参数类型,参数顺序,
参数个数)只要其中一个不同,就是运用了方法重载,,且与参数名和返回类型无关,可以
省很多事情;
2)构建器:即创建对象时采取的,和方法差不多,格式为(其类相同的类名)(){}
不同之处也是参数方面。
4、封装
封装我只是浅显得了解了一下:也是为了coder的便利,采用封装常用的方法的操作,只需要
进行方法的调用,就可以实现一些功能,当然里面肯定也有一些重载方法,才能构成一个强
大的功能。
在自制的封装时,有两种情况,一是在同一文件夹里进行封装(比如说新建一个主类名为hi
的java class,里面有一个名为void print()的方法,那么你就可以直接调用hi.print()来实
现);然而如果封装在另一个文件夹的话,那么你就需要“倒包”(在主类上面加入(import 文
件夹名.主类名;)),到时候就可以直接调用hi.print()来实现,当然有一个小细节,即在主类hi
下的方法必须加public static…才能被调用,否则会报错。

5、在同一源文件中除主类外,另外创建类时,其方法或成员变量前有无static含义不同。 无
static时,当你在主类里调用另一个类的方法时,所描述的功能或者特性为针对改对象(或实
例)而言的,例如:当你定义“人”这个类,并且执行“死亡”这个功能时,其含义为个体的死
亡; 有 static时,当你执行"死亡”功能时,代表这一类的死亡,即“人类灭亡”。

  • List item

6、方法区,栈,堆:当然也只是了解一点,方法区(来自小白理解)存储的是你定义的方法
和方法里的变量。栈里面存储的是成员变量和主方法里的局部变量。堆里面存储的是new出
来的数据,例如数组和对象。然后呢在堆里面new出来的数组和对象可以用栈里面的变量去
赋值(这样说也不对,其实是把堆数据里面的地址给了栈里面的变量),而栈变量与堆里面
的数据结合在一起就构成了引用关系。当引用关系不存在时(堆里面的数据的地址没有栈里
面的变量来储存的话,就变成了垃圾数据,这就需要垃圾处理器)。

  • List item

7、零碎知识集合:相比c语言的数据类型,java支持字符串类型:String,当然也有String类型
的数组,java7以后也有了二进制的表示方法0b/0B…;java7以后还有数字直接用下划线分
隔且不影响数字表示的机制:756<==>7_5_6,但是注意下划线两边只能是数字,这就意味着
数字开头之前和数字结尾之后不能用下划线。java里面的char为两个字节,意味着能存一个
汉字,也就是说你定义一个char类型的数组,你可以一个元素表示一个汉字。
java的变量分为两种,成员变量和局部变量,在主类中,成员变量必须在数据类型前加static
才能被方法所调用。变量还分为静态初始化和动态初始化,静态初始化是基于自己已知值的
的情况下,动态初始化,除char和String,以及什么来着,额,不要在意这种细节,之外,都
是初始化为0的,char初始化为null。

猜你喜欢

转载自blog.csdn.net/weixin_43471422/article/details/89303844