java语言基础

变量

变量的概念:

计算机内存中的一块存储空间,是存储数据的基本单元。

赋值运算符:

  1. 概念:为变量赋值
  2. 变量名=值; //将等号右边的值,赋值给等号左边的变量(存值)

变量定义流程

声明:数据类型 变量名;
例如:int a; //开辟整数变量空间 赋值:变量名=值;
例如:a=100; //将整数值赋给变量注意:java是强类型语言,变量的类型必须与数据的类型一致。

变量的定义方式

声明变量的3种方式:

  1. 先声明,再赋值:【常用】
    数据类型 变量名;
    变量名 = 值;
  2. 声明并赋值:【常用】
    数据类型 变量名 = 值;
  3. 多个同类型变量的声明和赋值:【了解】
    数据类型 变量1, 变量2, 变量3=值3, 变量4, 变量5=值5;

数据类型

java中的变量具有严格的数据类型区分。(强类型语言)

在java语言中,任何一个值,都有其对应类型的变量。

java中的数据类型:

java 定义变量赋值过程 java变量定义与赋值_操作数

基本数据类型(整数)

类型

字节

byte

1字节

short

2字节

int

4字节

long

8字节

注意:int为整数的默认类型,如需为long类型赋值较大整数时,需在值的后面追加“L”,在结尾家L,大小写都可。
例如:long l1=2155555555L; //显示告知JVM,此值为long类型

基本数据类型(小数/浮点数)

类型

字节

float

4字节

double

8字节

注意:double为浮点数的默认类型,如需为float类型赋值时,需在值的后面追加“F”

基本数据类型(布尔)

类型

字节

取值范围

boolean

1字节

true/false

可以直接赋值 true/false
也可以赋值一个结果为true/false的表达式
注意:java中的boolean不能参与算数运算

基础数据类型(字符)

类型

字节

取值范围

字符集

char

2字节

0-65535

Unicode字符集

Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值

  1. 字符赋值:char c1='A'; 通过‘’描述为字符赋值
  2. 整数赋值:char c2=65; 通过十进制数65在字符集中对应的字符赋值
  3. 进制赋值:char c3='\u0041'; 通过十六进制数41在字符集中对应的字符赋值

转义字符

转义字符

描述

\n

换行符

\t

缩进(制表位)

\

反斜线


单引号

"

双引号

总结:基本数据类型

  1. 整型:byte、short、int、long
  2. 浮点:float、double
  3. 布尔:boolean
  4. 字符:char

引用数据类型(字符串)

类型

取值范围

字符编码

String

任何""之间的字符

Unicode字符序列

String类型的字面取值:

String str1="你好";
String str2="Hello";

运算符

算术运算符

算数运算符:两个操作数进行计算

操作符

描述

+

加、求和

-

减、求差

*

乘、求积

/

除、求商

%

模、求余

算数运算符:一元运算符(只有一个操作数)

操作符

描述

++

递增,变量值+1

- -

递减,变量值-1

赋值运算符

赋值运算符:等号右边赋值给等号左边

操作符

描述

=

直接赋值

+=

求和后赋值

-=

求差后赋值

*=

求积后赋值

/=

求商后赋值

%=

求余后赋值

关系运算符

关系运算符:两个操作数进行比较

操作符

描述

>

大于

<

小于

>=

大于等于

<=

小于等于

==

等于

!=

不等于

逻辑运算符

逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较

操作符

语义

描述

&&

与(并且)

两个操作数,同时为真,结果为真

两竖线

或(或者)

两个操作数,有一个为真,结果为真

!

非(取反)

意为“不是”,真即是假,假即使真

三元操作符

操作符

语义

描述

? :

布尔表达式?结果1:结果2

当表达式结果为真,获得结果1。当表达式结果为假,获得结果2

类型转换

自动类型转换

两种类型相互兼容。
目标类型大于源类型

package demo;

public class Test{
	public static void main(String[] args){
		short s=123;
		int i=s;
	}
}

boolean无法与其他类型进行转换!

强制类型转换

两种类型互相兼容。
目标类型小于源类型。

package demo;

public class Test{
	public static void main(String[] args){
		short s=123;
		byte b=s;   //类型转换失败,编译错误
	}
}
package demo;

public class Test{
	public static void main(String[] args){
	short s=123;
	byte b=(byte)s;//强制转换:(目标类型)值
	}
}

强制类型转换规则:

  1. 整数长度足够,数据完整。
  2. 整数长度不够,数据截断。
  3. 小数强转整数,数据截断。
  4. 字符整数互转,数据完整。
  5. boolean的取值为true/false,不可与其他类型转换。

表达式

使用运算符连接的变量或字面值,并可以得到一个最终结果。

类型提升

自动类型提升

进行算数运算时:

  1. 操作数有一个为double,计算结果提升为double。
  2. 如果操作数中没有double,有一个为float,计算结果提升为float。
  3. 如果操作数中没有float,有一个为long,计算结果提升为long。
  4. 如果操作数中没有long,有一个为int,计算结果提升为int。
  5. 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
    特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。

控制台录入

程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
导包语法:import 包名.类名;//将外部class文件的功能引入到自身文件中。
使用顺序:

  1. 导入 java.util.Scanner。
  2. 声明Scanner类型的变量。
  3. 声明Scanner类中对应的方法(区分类型):
    .nextInt(); //获得整数
    .nextDouble(); //获得小数
    .next(); //获得字符串
    .next().charAt(0); //获得单个字符
    如果输入了不匹配的数据,则会产生java.until.InputMismatchException

实例:

//package 必须在源文件的首行
import java.util.Scanner; //引入外部文件
public class Demo{
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		System.out.println("请输入内容:");
		String str=input.next();
		System.out.println(str);
	}
}