Java-Basic2
Before:快开学了( 还没玩够呢呜呜呜😢 )
下面是一点碎碎念吧:
昨天和fz学弟吃饭,震惊于学弟对物竞的执着,想必是没法把学弟骗来泥交了吧🤣🤣🤣。想起了3年前的自己对数竞也是一样的痴迷,励志要把一生都献给纯数研究。当时应该还在学物竞,尝试着数物双修。还是在寒假后放弃了物理,选了数学,当然最后也只以高二的省一草草收场。有时候想,如果当时跟大多数人一样学了物理,大概至少也有个国一吧。经常嘴上说自己物理差数学好,其实细想自己还是挺喜欢物竞的。下学期也是终于有物理课了,希望能借此找到以前对物理的热爱❤️
Java Basic 2
Good Programing Style 代码风格
- Rule 1 : 使用好的/有意义的变量名
- Rule 2 : 正确的缩进 Ctrl + shift + F 可自动调节缩进
- Rule 3 : 空格 (特别是在复杂的表达式中) 空行 增强可读性
- Rule 4 : 不要重复测试 可能存在多个条件判断中不必要的重复检查等问题,使得代码不够简洁和高效。
循环 Loops
Java中有几个循环语句,与C ++ 中几乎一致
while循环
1 |
|
for循环
1 |
|
break & continue
与C ++ 中用法一致
数组 Arrays
与C ++ 同样都是 0 ~ base - 1
Arrays 的定义
int[] values; //整型一维数组
int[][] values; //整型二维数组
如果想创建一个固定大小的数组,使用运算符 new
int[] values = new int[5];
Arrays 初始化
注意:这种方法只能在声明变量时使用:
int[] values = {12 , 24 , -23 , 47};
Arrays 访问
同样是下标访问 values[index]
length 变量
Java数组在这里与C++数组存在一点区别:
C++中length变量只存在于STL容器中,普通数组并不具备这一变量,但Java中则存在
For example:
1 |
|
String Array
Java中允许字符串数组(C ++ 中并不允许string数组)
Object Oriented Programing 面向对象编程
Why use classes ?
Class Definition
Baby myBaby = new Baby();
1 |
|
构造函数 constructer
- 函数名即为类名
- 没有返回值
- 通常初始化fields
- 每个类至少需要一个构造函数
For example:1
2
3
4
5
6
7
8public class Baby{
String name;
boolean isMale;
Baby(String myname , boolean malebaby){
name = myname;
isMale = malebaby;
}
}
调用类
1 |
|
基本数据类型 VS 引用数据类型
基本数据类型
包括 int(整数)、long(长整数)、double(双精度浮点数)、boolean(布尔值)、char(字符)、short(短整数)、byte(字节)、float(单精度浮点数)
引用数据类型
数组和对象
所占的空间比基本数据类型要大的多
Java 对Object 的存储——引用!
Reference: Object的存储位置
遵循对对象的引用 <-> 按照指示前往一所房子
改变对象中的字段 <-> 挪动房子里的家具
静态数据类型和函数
静态字段或函数是为类声明(class declaration)而定义的
也就是说,它们属于类本身,而不是类的某个具体实例
Why public static void main(String[] arguments)
- 无需实例化:程序启动时,Java 虚拟机(JVM)需要直接调用 main 方法来执行程序。如果 main 方法不是 static,JVM 就需要先实例化一个类的对象,然后才能调用 main 方法,但在程序启动初期,没有合适的机制来创建对象,所以将 main 声明为 static,JVM 可以直接通过类名调用它,无需创建类的实例。
- 内存和性能考虑:静态方法在类加载时就已经绑定到类上,调用时不需要额外的对象创建开销,这有助于提高程序启动的效率,并且在程序启动阶段也更符合内存管理和性能优化的需求。