Java基础(一)
java基础知识点
关键字
定义:被赋予特定含义的单词。
特点:字母全部小写。
常量
定义:固定不被改变的量。
分类:
常量类型 | 说明 | 举例 |
---|---|---|
字符串常量 | 用双引号括起来的内容 | “helloworld” |
整数常量 | 不带小数的数字 | 888, -12 |
小数常量 | 带小数的数字 | 13.14, -5.12 |
字符常量 | 用单引号括起来的内容 | ‘a’ |
布尔常量 | 表示真假 | 只有两个值:true,false |
空常量 | 特殊,空值 | null |
注意:空常量是不能直接输出的,会报错
数据类型(基本)
计算机存储设备的最小信息单元叫"位(bit)",通常用小写字母"b"表示;而计算机中最小的存储单元叫"字节(byte)",通常用大写字母B表示,字节由连续的八个位组成。
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | -127~128 |
short | 2 | -32768~32767 | |
int | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点数 | float | 4 | |
double | 8 | ||
字符 | char | 2 | |
布尔 | boolean | 1 | true,false |
注意:整数默认int类型,浮点数默认double类型
变量
格式:数据类型 变量名=变量值;
注意事项:1.变量名不可重复
2.long类型的变量定义的时候,为了防止整数过大,后面要加L
3.float类型的变量定义的时候,为了防止不兼容,后面要加F
标识符
规则:由数字,字母,下划线,美元符$组成
不能以数字开头
不能是关键字(全部小写)
区分大小字
常见命名约定:
小驼峰命名法
约定1:标识符是一个单词的时候,首字母小写
范例1:name
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
范例2:firstName
大驼峰命名法
约定1:标识符是一个单词的时候,首字母大写
范例1:Name
约定2:标识符由多个单词组成的时候,每个单词的首字母大写
范例2:FirstName
类型转化
自动类型转换:
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。
byte -> short (char) -> int ->long -> float -> double
强制类型转换:
把一个表示数据范围大的数字或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名=(目标数据类型)值或者变量
范例:int k=(int)88.88;
算术运算符
符号 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
字符“+”操作
字符的“+”操作是拿字符在计算机的底层对应的数值来进行计算的。
int i=10;
char ch='a';
System.out.println(i+ch);
结果
107
注意:算数表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
等级:
byte,short,char->int->long->float->double
范例:
int i=10;
char ch='a';
char c=i+ch;//报错,因为char类型被提升为int类型;
int d=i+ch;//正确,输出107;
字符串的“+”操作
System.out.println("i"+"love");//ilove
System.out.println("i"+666);//i666
System.out.println(666+"i");//666i
System.out.println("i"+13+14);//i1314
System.out.println(13+14+"i");//27i
注意:当“+”出现在字符串时,这个“+”是字符串连接符,而不是算数运算。
在“+”操作中,如果既出现了数字又出现了字符串,连续进行+操作的时候,从左到右逐个执行。
范例:13+14+“i” 为27i;
赋值运算符
符号 | 作用 |
---|---|
= | 赋值 |
+= | 加后赋值 |
-= | 减后赋值 |
*= | 乘后赋值 |
/ = | 除后赋值 |
%= | 取余后赋值 |
自增自减运算符
- i++:先参与操作再相加。
int i=10;
int j=i++;
System.out.println("i:"+i);
System.out.println("j:"+j);
结果
i:10
j:11
- ++i:先相加再参与操作。
int i=10;
int j=++i;
System.out.println("i:"+i);
System.out.println("j:"+j);
结果
i:11
j:11
减减运算同理。
关系运算符
符号 | 说明 |
---|---|
== | 判等 |
!= | 判不等 |
>= | 判大于等于等 |
<= | 判小于等于等 |
> | 判大于 |
< | 判小于 |
逻辑运算符
符号 | 作用 |
---|---|
&(与) | a和b的结果都为true,结果为true,否则为false |
I(或) | a和b的结果都为false,结果为false,否则为true |
^(异或) | a和b的结果不同为true,相同为false |
!(非) | !a结果和a相反 |
短路逻辑运算符
符号 | 说明 |
---|---|
&& | 与&相同,有短路效果(左边为真,右边执行;左边为假,右边不执行 |
II | 与I相同,有短路效果(左边为假,右边执行;左边为真,右边不执行 |
三元运算符
a>b?a:b;//如果值为真,那么结果为a,否则结果为b;
例题:有三个和尚,身高分别为150cm,176cm,190cm,程序实现三个和尚的最高身高。
代码实现:
int a=150;
int b=176;
int c=190;
System.out.println(a>b?(a>c?a:c):(b>c?b:c);
数据输入
Scanner使用的基本步骤
- 导包
import java.util.Scanner;
- 创建对象
Scanner sc=new Scanner(System.in);
- 接受数据
int i=sc.nextInt();
加粗字体可自行改变,其余的不能。
Random
作用:产生一个随机数
使用步骤:
- 导包
import java.util.Random;
- 创建对象
Random r=new Random();
- 接受数据
int number=r.nextInt(10);//获取数据的范围:[0,10)不包括10.如果想取到10则int number=r.nextInt(10)+1;
数组
定义:数组是用于存储多个相同类型数据的模型。
格式一:数据类型[] 变量名(常用)
范例: int[] arr;
格式二:数据类型 变量名[]
范例: int arr[];
数组的动态初始化
定义:初始化时值指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 变量名=new 数据类型[数组长度]
格式:int[] arr=new int[3];
数组内存分配
int[] arr=new int(2);
arr(0)=0;
arr(1)=1;
int[] arr1=arr;
arr1(0)=3;
arr1(1)=4;
System.out.println(arr(1));//结果为4;
数组的静态初始化
定义:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:数据类型[] 变量名=new 数据类型[]{数据1,数据2......};
格式:int[] arr=new int[]{1,2,3};
简化格式:数据类型[] 变量名={数据1,数据2......};
数组的常见操作
- 长度
格式:数组名.length - 最值
int max;
int max=arr[0];
for(int i=1;i<arr.length;i++)
{
if(arr[i]>max)
{
max=arr[i];
}
}
System.out.println(max);
方法
格式:public static void 方法名(){/};
方法调用:方法名();
注意:一个代码中有且仅有一个main方法。
实参和形参
实参:方法调用中的参数。(main)
等同于变量或者常量。
形参:方法定义中的参数。
等同于变量定义格式。
注意事项
- 方法不能嵌套定义
- void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
通用格式
public static 返回值类型 方法名(参数)
{
方法体;
return 数据;
}
方法重载
- 多个方法在同一个类中
- 多个方法具有相同的方法名
- 多个方法的参数(类型,数量)不同
- 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
- 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关。
范例:以下不构成重载
public class methodDemo{
public static void f(int a){//与返回值无关
}
public static int f(int a){
}
}
范例:以下构成重载
public class methodDemo{
public static void f(int a){//参数类型不同
}
public static int f(double a){
}
}
public class methodDemo{
public static void f(int a){//参数个数不同
}
public static int f(int a,int b){
}
}