一.数据类型
1.注释分类
①单行注释
格式:// 注释信息
②多行注释
格式:/* 注释信息 */
③文档注释
格式:/** 注释信息 */
2.关键字
关键字含义:被Java语言赋予了特殊含义的单词
关键字特点:1.关键字字母全部小写;2.常用代码编辑器对关键字有特殊的颜色标记
如下图所示:
3.常量
常量概述:在程序运行过程中,其值不可发生改变的量
常量类型:
public class ConstantDemo{
public static void main(String[] args){
//字符串常量
System.out.println("HelloWorld");
System.out.println("黑马程序员");
System.out.println("--------");
//整数常量
System.out.println(666);
System.out.println(-88);
System.out.println("--------");
//小数常量
System.out.println(13.14);
System.out.println(-5.21);
System.out.println("--------");
//字符常量
System.out.println('A');
System.out.println('o');
System.out.println('我');
System.out.println("--------");
//布尔常量
System.out.println(true);
System.out.println(false);
System.out.println("--------");
//空常量
//空常量不能直接输出
//System.out.println(null);
}
}
注:在常规文本输出时,可能会出现无法输出中文的情况
这是因为JDK是国际版的,在编译的时候,如果没有用-encoding参数指定JAVA源程序的编码格式,则javac.exe首先获得操作系统默认采用的编码格式,也即在编译java程序时,若不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。
4.数据类型
4.1计算机存储单元
计算机存储设备最小信息单元叫“位(bit)”,又称之为“比特位”,通常用小写字母“b”表示。
计算机中最小的存储单元“字节(byte)”,**通常用小写字母“B”表示。
4.2数据类型
Java是强类型语言,不同的数据类型分配了不同的内存空间,它们表示的数据大小也不一样。
4.3数据类型内存占用和取值范围
5.变量
5.1变量概述
变量:在程序运行过程中,其值可以发生改变的量
从本质上讲,变量是内存中的一小块区域
5.2变量定义
格式: 数据类型 变量名 = 变量值;
范例:int a = 10;
5.3变量的使用
变量的使用:取值和修改值
取值格式:变量名
范例:a
修改值格式:变量名 = 变量值;
范例:a = 20;
5.4变量使用注意事项
①变量名不能重复
②变量需要初始化后才能使用
③long类型初始化,变量值后面带L,因为Java的整型变量默认int类型,赋值时可能会超范围
public class HelloWorld{
public static void main(String[] args){
/*错误示例
long l = 10000000000;
*/
//正确示例
long l = 10000000000L;
}
}
④float类型初始化,变量值后面带F,因为Java浮点型变量默认double类型,赋值时类型不兼容
public class HelloWorld{
public static void main(String[] args){
/*错误示例
float f = 13.14;
*/
//正确示例
float f = 13.14F;
}
}
6.标识符
6.1标识符概述
标识符:给类,方法,变量等起名字的符号
6.2标识符定义规则
①由==数字、字母、下划线(_)和美元符($)==组成
②不能以数字开头
③不能是关键字
④区分大小写
6.3常见命名约定
小驼峰命名法:方法、变量
约定1:标识符是一个单词的时候,首字母小写
范例1:name
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其它单词首字母大写
范例2:firstName
大驼峰命名法:类
约定1:标识符是一个单词的时候,首字母大写
范例1:Student
约定2:标识符由多个单词组成的时候,每个单词首字母大写
范例2:GoodStudent
7.类型转换
7.1类型转换的分类
自动类型转换
强制类型转换
7.2自动类型转换
把一个表述数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
范例:double d = 10;
boolean是非数值类型,所以不参与
7.3强制类型转换
把一个表述数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
范例:int k = (int) 88.88;
二.运算符
1.算数运算符
1.1运算符和表达式
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的句子
举例说明:
int a = 10;
int b = 20;
int c = a + b;
+:是运算符,并且是算法运算符
a + b:是表达式,由于+是算法运算符,所以这个表达式叫算术表达式
1.2算数运算符
public class OperatorDemo01{
public static void main(String[] args){
/*
整数相除只能得到整数,想要得到小数,必须要有浮点数参与
*/
Syetem.out.println(6/4);
Syetem.out.println(6.0/4);
}
}
1.3字符的"+"操作
public class OperatorDemo01{
public static void main(String[] args){
//定义两个变量
int i = 10;
char c = 'A';//'A'的值是65
System.out.println(i + c);
char c = 'a';//'A'的值是97
System.out.println(i + c);
char c = '0';//'A'的值是48
System.out.println(i + c);
//char ch = i + c;
//char类型会被自动提升为int类型
int j = i + c;
System.out.println(j);
//int k = 10+13.14
double d = 10 + 13.14;
}
}
1.4字符串的"+"操作
public class OperatorDemo02{
public static void main(String[] args){
System.out.println("it" + "heima"); // itheima
System.out.println("itheima" + 666); // itheima666
System.out.println(666 + "itheima"); // 666itheima
System.out.println("黑马" + 6 + 66); // 黑马666
System.out.println(1 + 99 + "年黑马"); // 100年黑马
}
}
2.赋值运算符
public class OperatorDemo02{
public static void main(String[] args){
int i = 10;
System.out.println("i:" + i);// i:10
// += 把左边和右边的数据做加法操作,结果赋值给左边
i += 20;
/* 伪等价于
i = i + 20;
*/
System.out.println("i:" + i);// i:30
//注意:+=底层隐含了强制类型转换
short s = 10;
s += 20;
/*
s = s + 20; // 会报错!精度阶段误差
s = (short)(s + 20);
*/
System.out.println("s:" + s);// i:30
}
}
3.自增自减运算符
public class OperatorDemo{
public static void main(String[] args){
int i = 10;
System.out.println("i:" + i);// i:10
/*单独使用
i++;
System.out.println("i:" + i);// i:11
++i;
System.out.println("i:" + i);// i:12
*/
//参与操作使用
int j = i++;
System.out.println("i:" + i);// i:10
System.out.println("j:" + j);// i:11
int j = ++i;
System.out.println("i:" + i);// i:11
System.out.println("j:" + j);// i:11
}
}
4.关系运算符
5.逻辑运算符
5.1基本逻辑运算符
在数学中,一个数据x,大于3,小于6,我们可以这样进行表示:3<x<6
在Java中,需要把上面的式子进行拆解,再进行合并表达。
-
拆解为:x>3和x<6
-
合并后:x>3&&x<6
&&其实是一个逻辑运算符,用来连接关系表达式的运算符
也可以直接连接布尔类型的常量或者变量
5.2短路逻辑运算符
6.三元运算符
格式:关系表达式?表达式1:表达式2;
范例:a > b ? a : b;
计算规则:
首先计算关系表达式
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
public class OperatorDemo{
public static void main(String[] args){
//定义连个变量
int a = 10;
int b = 20;
//获取两个数据中的较大值
int max = a > b ? a : b;
//输出结果
System.out.println("max:" + max);
}
}
案例:三个和尚
public class OperatorDemo{
public static void main(String[] args){
//1.定义三个变量保存和尚身高(cm)
int height1 = 150;
int height2 = 210;
int height3 = 165;
//2.用三元运算符获取前两个和尚的身高较高值用临时变量保存起来
int tempHeight = height1 > height2 ? height1 : height2;
//3.用三元运算符获取临时身高和第三个和尚身高的较高值,用最大身高变量保存起来
int maxHeight = tempHeight > height3 ? tempHeight : height3;
//4.输出结果
System.out.println("maxHeight:" + maxHeight);
}
}
三.数据输入
Scanner使用的基本步骤
/* 1.导包:
import java.util.Scanner;
2.创建对象:
Scanner sc = new Scanner(System.in);
3.接收数据
int x = sc.nextInt();*/
import java.util.Scanner;
public class ScannerTest{
public static void main(String[] args){
//创建对象
Scanner sc = new Scanner(System.in);
//接受数据
int x = sc.nextInt();
//输出数据
System.out.println("x:" + x);
}
}
案例:三个和尚
import java.util.Scanner;
public class ScannerTest{
public static void main(String[] args){
//1.创建对象
Scanner sc = new Scanner(System.in);
//2.键盘录入三个身高并分别赋值给三个变量
System.out.println("请输入第一个和尚的身高:");
int height1 = sc.nextInt();
System.out.println("请输入第二个和尚的身高:");
int height2 = sc.nextInt();
System.out.println("请输入第三个和尚的身高:");
int height3 = sc.nextInt();
//3.用三元运算符获取前两个和尚的身高较高值,用临时变量保存起来
int tempHeight = height1 > height2 ? height1 : height2;
//4.用三元运算符获取临时身高和第三个和尚身高的较高值,用最大身高变量保存起来
int maxHeight = tempHeight > height3 ? tempHeight : height3;
//5.输出结果
System.out.println("这三个和尚中身高最高的是" + maxHeight + "cm");
}
}