[javaSE笔记1] JAVA的基本程序设计结构
[javaSE笔记1] JAVA的基本程序设计结构
由于主要是一些基本的概念如分支, 循环, 数据类型这些, 这里只记录一些点而不做系统的笔记
-
main方法必须声明为public
-
int 4字节; short 2字节; long 8字节; byte 1字节
( 注意, java这些数据类型的字节数都是确定的, 而C/C++并不是, 比如C++的int类型可能是2或4字节, 和操作系统甚至编译器都有关, 给跨平台带来了很大的难度, 这也就是Java的" 可移植性 "好的原因之一) -
Java没有任何无符号形式 ( unnsigned) 的int, long, short 或者 byte类型
-
Java中的boolean类型不能由数值代替, 否则无法通过编译 ( C++中数值甚至指针类型都可以表示bool值 )
-
不要使用 '==' 判断两个字符串是否相等, 应该用equals方法
-
String为不可变字符串, 不能修改单个字符
-
Java不允许嵌套的快中重定义一个变量
public class coreFormat {
public static void main(String[] args) {
int x = 3;
if( x == 3) {
int x = 4;
x++;
}
System.out.println(x);
}
}
/*
Error:(10, 17) java: 已在方法 main(java.lang.String[])中定义了变量 x
*/
- Java提供带标签的break语句, 用于跳出多重嵌套循环, 注意标签必须放在希望跳出的最外层循环之前并带上一个冒号
public class coreFormat {
public static void main(String[] args) {
int n;
Imtab:
while (true) {
while (true) {
while (true) {
while (true) {
break Imtab;
}
}
}
}
System.out.println("I'm out");
}
}
/*
I'm out
*/
- java.math包中两个大数的类 : BigInteger 和 BigDecimal, 前者实现任意精度的整数运算, 后者实现任意精度的浮点数运算 ( 不能用\(+\) 或者 \(\times\) , \(\div\) ...来处理大数, 而需要使用大数类中的add和multiply, divide ...方法
public class coreFormat {
public static void main(String[] args) {
BigInteger a = BigInteger.valueOf(100);
BigInteger reallyBig = new BigInteger("1209830129839012830918294798127398123123912848");
BigInteger reallyBig1 = new BigInteger("1290831208309218309128309218038102341");
BigInteger ans = reallyBig.multiply(reallyBig1);
System.out.println(ans);
ans = reallyBig.add(reallyBig1);
System.out.println(ans);
/*
1561686488348991405143064571291343054195716538900929041411407291357060176588777168
1209830131129844039227513107255707341162015189
*/
}
}
-
与C++不同, java不提供运算符重载的功能
-
java提供foreach循环, 格式如 for ( int x : a)
public class coreFormat {
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7,};
for(int i:a)
System.out.print(i);
}
}
// 1234567
- 可以用Arrays.toString快速输出一整个数组
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7,};
System.out.println(Arrays.toString(a));
}
// [1, 2, 3, 4, 5, 6, 7]
- Arrays.copyOf拷贝数组
- Arrays.sort数组排序
- 二维数组的声明
int[][] a = new int[8][8];
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
a[i][j] = i + j;
}
}
System.out.println(Arrays.deepToString(a)); // deepToString可以直接输出二维数组
}