2023.3.9-Java入门-已到达会自己造轮子的初级学习进度
目录
一、源码
二、输出
一、源码

//以下代码请自行复制编译运行,完成学习,或者查看“二、输出”。
public class Main {
public static void main(String[] args) {
int a = 10, b=18;
short x=10;
byte c;
x = (short)(a+b);//强制类型转换long --> short
a = x;//隐式类型转换short --> long
c = (byte)a;//byte->short->int->long->float->double, char->int
System.out.println("x的值是:"+x);
System.out.print("c的值是:"+c);//print输出没有换行
System.out.println("");
double pi = 3.14159;
float f = 2.7F;
int n = 15, d = 4;
f=n/d;
System.out.println("f="+f);
int radius=10;
double area=pi*radius*radius;//java的乘除是从右向左计算,所以整数的radius转换为double和pi相乘,于是area是double的,如果从左向右,则会是整数。
System.out.println("area="+area);
boolean t = true;
System.out.println("t的值是"+t);
int xx=2;
boolean yy=(xx>2);
System.out.println("yy的值是"+yy);
char cc='c';//单引号是字符,""是字符串。但是java不提供字符串类型定义。
System.out.println(cc);
char bb=(char)(cc+1);//当然也可以用unicode的编码去赋值。
System.out.println(cc+bb);
System.out.println("cc+bb是"+cc+bb);
//下面看数组,Java的数组也和C一样,一经定义,无法改变大小。
int firstArray[];//零数组,表明数组存在,但无法储存值。
int secondArray[]=new int[5];//这里给它预留了5个int的存储空间。
int intArray[]={30,20,10,-10};//一次性完成定义和赋值。
System.out.println(intArray[0]);
String stringArray[]={"first","second"};
System.out.println(stringArray.length);
System.out.println(stringArray[0]+'\n'+stringArray[1]);
//高维数组,比如二维数组每个元素都是一维数组,且数组不一定等长,数组空间不是连续分配的。
int[][] i = new int[2][3];//推荐使用
int ii[][] = new int[2][3];//不推荐使用
int[][] aaa = new int[3][];
aaa[0] = new int[2];//不能空缺第一维的大小,否则报错。
aaa[1] = new int[3];
aaa[2] = new int[1];
String programOut="I enjoy java program world.";
String preHalf=programOut.substring(0,12);
String backHalf=programOut.substring(12);
System.out.println(preHalf+backHalf);
new Main().execute();
Main main=new Main();
main.execute();//这样写更加规范一些。
}
private void execute(){
String s = "Hello你好";
byte[] bytes=s.getBytes();
System.out.println(bytes.length+"\n"+bytes[10]);//输出11,这个和getBytes()有关。
String[] ss=new String[]{"a233b","bb234s","c2233d","ad"};
for(String i:ss)
System.out.println(i.matches("[ab]\\d*[cd]"));
String SS="Get me a cup of coffee////... 1.1";
String SSS[]=SS.split("\s+");
for (String sss:SSS)
System.out.println(sss);
//当然还可以试一下replaceAll和其他方法。
}
/**
* toString() 在java.lang.Object 中定义
* 此处重载,用@Overrride标注。
*/
@Override//Java注解,Annotation
public String toString(){
return "Override toString";
}
}
//a line implementation
/*This can be
ignored
*/
/** wow, this is different from above*/
/*
public-the main method is publicly visible
static-allows the main program to be called without creating an object (details to follow)
keywords 53 关键字
reserved words 14 保留字。已经启用了4个值,比如var.
标识符,不能用数字开头。
标识符命名习惯:类、接口,大驼峰;方法、变量名,小驼峰;常量,全大写。
数据类型:
基本数据类型(整数、浮点数等byte, short, int, long, float, double, char, boolean);
扩展类型(类、数组、接口)。
可以用var,而不需要显式地规范变量类型。
string是Java里的一个类,而不是基本数据类型。string类封装了一些方法。
Java中任何的对象,都有一个toString()的方法,不用自己写,直接调用。
比如:求子串的方法……
Java正则表达式:
[ac]\\d*[bd]
对应为:a73b c34534d a233d c52542b ad
代码变量作用域的问题,和C一样,在代码块{...}之内起作用。
作为良好习惯,代码块的开头定义变量。哪怕在不同代码块,为了可读性,也不要变量同名。
*/

二、输出

(以下为终端输出内容)
D:\SoftwareSet\Java\JDK19\jdk-19.0.2\bin\java.exe "-javaagent:D:\SoftwareSet\Java\javaIDE(jetbrains)\installPath\IntelliJ IDEA Community Edition 2022.3.2\lib\idea_rt.jar=17020:D:\SoftwareSet\Java\javaIDE(jetbrains)\installPath\IntelliJ IDEA Community Edition 2022.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\AllData\mess\2023_Java_lecture\test\out\production\test Main
x的值是:28
c的值是:28
f=3.0
area=314.159
t的值是true
yy的值是false
c
199
cc+bb是cd
30
2
first
second
I enjoy java program world.
11
-67
false
false
false
true
Get
me
a
cup
of
coffee////...
1.1
11
-67
false
false
false
true
Get
me
a
cup
of
coffee////...
1.1
Process finished with exit code 0