【JavaSE】前期小结

发布于:2025-04-18 ⋅ 阅读:(23) ⋅ 点赞:(0)

一.初识Java

1.第一个程序

public class Test {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Java的程序结构由3个部分构成
1.源文件:.java
2.类:由class修饰,一个程序内可能含有多个类,但是只能有一个public修饰的类,并且这个类必须和源文件名字相同
3.方法:在C语言我们叫做函数,语句放在方法内

2.总结

1.Java中的数据类型所占大小都是固定不变的,如:int都是4个字节
2.Java的编译器IDEA支持快捷输入,如:使用输出语句时只需键盘上输入sout,然后回车就行,for循环也有快捷输入,为fori
3.代码书写风格与C语言不同,花括号{}位置改变

如下:在Java中

for (i = 0; i < 10; i++) {
	...
}

在C语言中:

for (i = 0; i < 10; i++)
{
	...
}

3.标识符命名

标识符可以用数字,字母,下划线,$命名,但不能以数字开头

1.大驼峰命名法:每个单词首字母要大写,常用于类的命名,如:Test
2.小驼峰命名法:第一个单词的首字母要小写,之后的单词首字母大写,常用于方法,变量命名,如:add,leapYear

二.数据类型与变量

1.基本数据类型

基本数据类型有4类8种,4类包括:整型,浮点型,字符型,布尔类型

数据类型 关键字 占用内存 范围 包装类型
字节型 byte 1字节 -128~127 Byte
短整型 short 2字节 -32768~32767 Short
整型 int 4字节 -2^31 ~2^31-1 Integer
长整型 long 8字节 -2^63 ~2^63-1 Long
单精度浮点型 float 4字节 有范围,但一般不关注 Float
双精度浮点型 double 8字节 有范围,但一般不关注 Double
字符型 char 2字节 0~65535 Character
布尔型 boolean 无明确规定 true/false Boolean

可以看到,相较于C语言,Java多了一种数据类型byte,char类型所占用空间不是1个字节,而是2个字节。

现阶段我们可以用包装类型来获取数据类型的最大值和最小值

如:

int a = Integer.MAX_VALUE;  //得到int类型的最大值
int a = Integer.MIN_VALUE;  //得到int类型的最小值

注意事项:
1.我们在定义一个float变量时,需在其后面加一个f,因为编译器会默认你创建的是一个double类型

float a = 3.5f;

2.定义一个long类型变量时,需在后面加一个L/l,推荐加L

long b = 5L;

2.字符串类型

在Java中拥有字符串类型,定义规则如下:

String 变量名 = "xxx";

如何比较两个字符串是否相等?

使用equals()方法,逐个字符比较
另外,equalsIgnoreCase()可以忽略大小写

String str = "abc";
String str2 = "abc";
if (str.equals(str2))
	System.out.println("ok");  //打印ok
else
	System.out.println("no ok");

3.类型转换

3.1自动类型转换(隐式)

当数据范围小的转为数据范围大的时候编译器会自己进行处理。

int a = 5;
long b = 10;
a = b;  //报错
b = a;  //不会报错

3.2强制类型转换(显式)

数据范围大的转为范围小的,但可能会丢失数据

int a = 0;
double b = 3.5;
a = (int)b;
System.out.println(a);  //打印3

4.类型提升

不同类型间进行运算时,范围小的会被提升为范围大的类运算,因此要用范围大的那个来接受结果。

int a = 4;
long b = 6;
int c = a + b;  //报错,a被提升为long类型了,结果是long类型,应该用long接收结果
long d = a + b;

byte,short,char这些数据类型进行运算前会被提升为int类型

byte a = 1;
byte b = 2;
byte c = a + b;  //报错,应该用int类型接收,或者强制转化成byte类型
byte c = (byte)(a + b);

5.字符串类型和整型间的转换

1.字符串类型转整型:

1Integer.parseInt();2Integer.valueof();

2.整型转字符串类型

1int num = 10;
	 String str = num + "";2String.valueof();3Integer.toString();

三.Java的输入和输出

1.输出

1.第一种:System.out.println();
特点:自动换行
2.第二种:System.out.print();
特点:没有自动换行
第三种:System.out.printf();
特点:和C语言中的printf一样的用法

2.输入

在使用输入前,我们需要导包,而使用快捷输入时会自动导包

import java.util.Scanner;  //导包

用法:

Scanner 名字 = new Scanner(System.in);
名字.next数据类型();

输入数据的类型有以下8种:
1.byte,int,long,float,double,boolean这6种类型输入时都是首字母大写,如:scan.nextFloat();
2.char类型:scan.next().charAt(0);
3.String类型:scan.nextLine();

例如:输入一个整型数字

Scanner scan = new Scanner(System.in);
int num = scan.nextInt();   

3.多组输入

while (scan.hasNext()) {
	int num = scan.nextInt();
	...
}

在IDEA中取消多组输入的快捷键是Ctrl+D

四.运算符

tips:只讲一些和C语言不太相同的地方

1.取模运算符%:两个操作数可以是小数(但无实际意义),而C语言只能是两个整数。
2.关系运算符,逻辑运算符的返回结果是true或false,而C语言返回的结果是1或0。
3.移位运算符有3个:<< ,>>,>>>

左移<<:和C语言相同,左边丢弃,右边补0

右移>>:和C语言算术右移相同,左边补符号位,右边补0

无符号右移>>>:和C语言逻辑右移相同,左边补0,右边丢弃

五.随机数的生成

使用前,我们也需要导包

1.Java中伪随机数的生成:

import java.util.Random;

用法:

Random 名字 = new Random();
类型 变量名 = 名字.next首字母大写的类型();

例如:

Random rand = new Randome();
int randNum = rand.nextInt();

我们可以给生成的随机数限定范围

Random rand = new Randome();
int randNum = rand.nextInt(100);  //范围是[0,100)

2.C语言中随机数的生成:

生成随机数的函数为rand(); 但是这是生成的伪随机数,需包含头文件stdlib.h

rand函数是对一个叫“种子”的基准值进行运算生成的,而我们要改变“种子”,就要用到srand()函数,需包含头文件stdlib.h

void srand(unsigned int seed);

传给srand函数的参数是由time函数实现的,需包含头文件time.h,time函数的返回值不是unsigned int类型的,因此传参时还需强制转换

time_t time(time_t* timer);

因此,随机数的生成如下:

srand((unsigned int)time(NULL));
int num = rand();

六.分支和循环结构

tips:用法和C语言一样,就不过多叙述了,这里提几个点。

1.括号里面只能是"布尔表达式",返回结果只能是true/false;而在C语言中括号里面是"表达式"
2.条件为真,执行语句;条件为假,不执行语句,在C语言中,0表示假,非0表示真,而在Java中就没有这一说法。
例如:如果num不等于0,就执行if语句
在C语言中可以是:

int num = 1;
if (num)  //或 num != 0
{
	...
	num--;
}

在Java中只能是:

int num = 1;
if (num != 0) {
	...
	num--;
}

七.方法

tips:在C语言中我们叫函数,而在Java中叫方法。在这我也只提几个点。

1.如何定义一个方法:

修饰符 返回类型 方法名(形参) {
	...
}

现阶段我们在定义方法时在其前面加上public static这两个修饰符。
public:表示方法具有公共访问权限,能够被其他类在任何位置访问和调用。
static:可以直接通过类名来调用。

public static int add(int x,int y) {
	return x + y;
}
public static void main(String[] args) {
    int a = 1;
    int b = 2;
    int r = add(a,b);
    System.out.println(r);
}

2.在Java中调用方法前不用声明,或者说没有这一说法。

3.方法重载:

当我们想要实现相似的功能时,功能相似,但我们在定义方法名时都要不同,(如果觉得想名字太麻烦)。那么就可以用到方法重载,在定义的多个方法中,方法名必须相同,但参数列表必须不同(指参数类型,个数,顺序不同),而我们在调用方法时只要根据传的参数就能自动去匹配那个方法并执行。

例如:我们既想实现2个整型数据的和,又想实现3个浮点型数据的和

public static int add(int x,int y) {
    return x + y;
}
public static double add(double x,double y,double z) {
    return x + y + z;
}
public static void main(String[] args) {
    System.out.println(add(2.3,5.5,7.2));  //15.0
    System.out.println(add(4,5));   //9
}

网站公告

今日签到

点亮在社区的每一天
去签到