Java基础概念
注释
-
**注释:**是在程序指定位置添加的说明性信息,简单理解,就是对代码进行解释说明的文字。
-
注释分类:
-
单行注释:
格式://注释信息
-
多行注释:
格式:/*注释信息*/
-
文档注释:
格式:/**注释信息**/
-
-
注意:
-
注释的内容不参与编译,也不参与运行,仅仅是对代码的解释说明
-
不管是单行注释还是多行注释,在书写的时候都不要嵌套
-
关键字
**关键字:**被 Java 赋予特定涵义的英文单词
特点:
- 关键字的字母全部小写
- 常用的代码编辑器,针对关键字有特殊的颜色标记,非常的壮观
**关键字class:**用于(创建/定义)一个类,后面跟随类名,类是Java最基本的组成单元
关键字 return:
- 方法没有返回值:可以省略不写。如果书写,表示结束方法
- 方法有返回值:必须要写。表示结束方法和返回结果
字面量(常量)
**字面量:**数据在程序中的类型
字面量类型 | 说明 | 举例 |
---|---|---|
整数类型(int) | 不带小数点的数字 | 666、-88 |
小数类型(double) | 带小数点的数字 | 13.14、-5.21 |
字符串类型(string) | 用双引号括起来的内容,内容可以为空 | “HelloWorld”、“黑马程序员”、" " |
字符类型(char) | 用单引号括起来的,内容只能有一个 | ‘A’、‘0’、‘我’、‘b’ |
布尔类型(boolean) | 布尔值,表示真假 | 只有两个值:true, false |
空类型 | 一个特殊的值,空值 | 值是:null |
**细节:**null不能直接打印
如果我们要打印null,那么只能用字符串的形式进行打印
扩展点:
‘\t’、‘\r’、‘\n’、…
1、\t 制表符:
在打印的时候,把前面字符串的长度补齐到8,或者8的倍数。最少补1个空格,最多补8个空格。
public class HelloWorld{
public static void main (String[] args){
System.out.println("abc" + '\t'); //字符串长度为3,'\t' 表示补5个空格
System.out.println("abcd" + '\t'); //字符串长度为4,'\t' 表示补4个空格
}
}
**作用:**打印时让数据对齐
public class HelloWorld{
public static void main (String[] args){
System.out.println("nameage");
System.out.println("tom23");
}
}
打印效果:
nameage
tom23
public class HelloWorld{
public static void main (String[] args){
System.out.println("name" + '\t' + "age");
System.out.println("tom" + '\t' + "23");
}
}
打印效果:
name age //name后补4个空格
tom 23 //tom后补5个空格
变量
**变量:**在程序的执行过程中,其值有可能发生改变的量(数据)
**变量的使用场景:**当某个数据经常发生改变时,我们也可以用变量存储。当数据变化时,只要修改变量里面记录的值即可。
变量的定义格式:
数据类型 变量名 = 数据值;
"=":作用“赋值”
public class VariableDemo1{
//主入口
public static void main (String[] args){
//定义变量
//数据类型 变量名 = 数据值;
int a = 12;
//输出 a 的值
System.out.println(a);
}
}
运行结果:12
变量的使用方式:
1、输出打印
2、参与计算
3、修改记录的值
public class VariableDemo2{
//主入口
public static void main (String[] args){
//数据类型 变量名 = 数据值;
//1、基本用法
int a = 12;
//输出 a 的值
System.out.println(a);
System.out.println(a);
//2、变量参与计算
int b = 15;
int c = 20;
System.out.println(b + c);
//3、修改变量记录的值
a = 21;
System.out.println(a);
System.out.println("---------------);
//注意事项
//在- 一条语句可以定义多个变量
int d = 100,e = 200,f = 300;
System.out.println(d);
System.out.println(e);
System.out.println(f);
int g;
//System.out.println(g);报错,变量使用前未赋值
g = 600;
System.out.println(g);
}
}
运行结果:
12
12
35
21
--------------------
100
200
300
注意事项:
- 只能存一个值
- 变量名不允许重复定义
- 一条语句可以定义多个变量
- 变量在使用之前一定要进行赋值
- 变量的作用域范围==(变量只能在所属的方法里面有效)==
变量练习:
public class VariableTest{
//主函数入口
public static void main(String[] args){
//定义乘客数量变量,并初始化
int counter = 0;
//第一站,上一个乘客
counter = counter + 1;
//第二站,上两个乘客,下一位乘客
counter = counter + 2 - 1;
//第三站,上两个乘客,下一位乘客
counter = counter + 2 - 1;
//第四站,下一位乘客
counter = counter - 1;
//第五战,上一位乘客
counter = counter + 1;
//输出终点站乘客人数
System.out.println(counter);
}
}
运行结果:
3
计算机的存储规则
**计算机中的3类数据:**文本数据、图片数据、声音数据
-
Text文本,文本数据
-
数字、字母、汉字
-
计算机的存储规则
-
- 数字:转二进制
- 字母:查询码表
- 汉字:查询码表
-
Image图片,图片数据
- 黑白图、灰度图、彩色图
- 通过每个像素点中的RGB三原色来存储
- 黑白图、灰度图、彩色图
-
Sound声音,声音数据
- 对声音的波形图进行采样再存储
在计算机中,任意数据都是以二进制的形式来存储的
不同进制在代码中的表现形式:
- 二进制:由 0 和 1 组成,代码中以0b开头
- 十进制;由 0 ~ 9 组成,前面不加任何后缀
- 八进制:由 0 ~ 7 组成,代码中以 0 开头
- 十六进制:由 0 ~ 9 还有 a ~ f 组成,代码中以 0x 开头
显示器的三个知识点:(图片存储)
-
分辨率:2K、4K
- 常见2K,1920*1080,在显示器上宽有1920个小格子,高有1080个小格子,一个小格子成为一个像素
- 常见4K,3840*2160,
-
像素
-
光学三原色
- 红、绿、蓝。也称之为TGB
- 写成十进制形式:(255,255,255)
- 写成十六进制形式:(FF,FF,FF)
数据类型
数据类型的分类:
-
基本数据类型
-
数据类型 关键字 取值范围 字节型 byte -128~127 短整型 short -32768~32768 长整型 long -9223372036854775808~9223372036854775807 整型 int(默认) -2147483648~2147483647 单精度浮点型 float -3.401298e-38~3.402823e+38 双精度浮点型 double(默认) -4.9000000e-324~1.797693e+308 字符型 char 0~65535 布尔型 boolean true, flase 注意:
1、在定义 long 类型的变量,在数据值后面需要加上一个 L 作为后缀
long n = 999999L;
2、在定义 float 类型的变量,在数据值后面需要加上一个 F 作为后缀
float f = 10.1F
3、double > float > long > int > short > byte
4、字符型
package just.test; public class Test3 { public static void main(String[] args) { char a = 'a'; char b = ++a; char c = (char)99; System.out.println(b); System.out.println(c); } } 运行结果: b c
-
-
引用数据类型
只要是 new 出来的,都是 引用数据类型
例如:数组
练习:
1、练习:输出老师的信息
public class VariableTest2{
//主入口
public static void main(String[] args){
//姓名
string name = "黑马谢广坤";
//年龄
int age = 18;
//性别
char gender = '男';
//身高
double height = 180.1;
//是否结婚,true表示结婚
boolean flag = true;
//输出变量的值
System.out.println(name);
System.out.println(age);
System.out.println(gender);
System.out.println(height);
System.out.println(flag);
}
}
输出结果:
黑马谢广坤
18
男
180.1
true
标识符
**标识符:**就是给类、方法、变量等起的名字。做到,见名知意。
标识符命名规则—硬性要求
- 由 数字、字母、下划线(_) 和 美元符($) 组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
标识符命名规则—软性要求
小驼峰命名法:方法、变量
-
规范1:标识符是一个单词 的时候,全部小写
-
范例1:name
-
规范2:标识符有多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
-
范例2:firstName
大驼峰命名法:类名
- 规范1:标识符是一个单词 的时候,首字母大写**
- 范例1:Student
- 规范2:标识符有多个单词组成的时候,每个单词的首字母大写
- 范例2:GoodStudent
键盘录入
**键盘录入介绍:**Java帮我们写好一个类叫 Scanner,这个类就可以接收键盘输入的数字
Scanner使用步骤:
-
步骤一:导包 — Scanner 这个类在哪
import java.util.Scanner;导包的动作必须出现在类定义的上边
-
步骤二:创建对象 — 表示我要开始用 Scanner 这个类
Scanner sc = new Scanner(System.in); 上面这个格式里面,只有 sc 是变量名,可以变,其他的都不允许变。
-
步骤三:接收数据 — 真正开始干活
int i = sc.nextInt(); 左面这个格式里面,只有i是变量名,可以变,其他的都不允许变
//导包,写在类定义的上面 import java.util.Scanner; public class ScannerDemo1{ public static void main(String[] args){ //创建对象 Scanner sc = new Scanner(System.in); System.out.println("请输入整数:"); //接收数据 //接收数据的代码sc.nextInt(),在键盘输入什么,sc.nextInt()就接受什么。再把接收到的结果,赋值给左边的变量, int i = sc.nextInt();//变量 i 记录了键盘录入的数据 System.out.println("输出结果:"); System.out.println(i); } } 运行结果: 请输入整数: 1234 输出结果: 1234
**练习:**键盘输入数字并求和
需求:键盘录入两个整数,求出它们的和并打印出来。
//导包 inport java.unit.Scanner; public class ScannerDemo2{ public static void main(String[] args){ //创建对象 Scanner sc = new Scanner(System.in); //输入两个整数 System.out.println("请输入第一个数字:"); int number1 = sc.nextInt(); System.out.println("请输入第二个数字:"); int number2 = sc.nextInt(); System.out.println("输出两整数之和:"); System.out.println(number1 + number); } } 运行结果: 请输入第一个数字: 12 请输入第二个数字: 21 输出两整数之和: 33IDEA
第一套体系
package Just.test;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//键盘录入
//第一套体系
//nextInt(); 接收整数
//nextDouble; 接受小数
//next(); 接收字符串
//遇到空格,制表符,回车就停止接收。这些符号后面的数据就不会接受了
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int num1 = sc.nextInt();
System.out.println(num1);
System.out.println("请输入第二个整数");
int num2 = sc.nextInt();
System.out.println(num2);
System.out.println();
System.out.println("请输入一个字符串");
String arr1 = sc.next();
System.out.println(arr1);
System.out.println("请输入第二个字符串");
String arr2 = sc.next();
System.out.println(arr2);
System.out.println();
}
}
====================================================
运行结果:
请输入一个整数
123 456
123
请输入第二个整数
456
请输入一个字符串
asd fgjk
asd
请输入第二个字符串
fgjk
第二套体系
package Just.test;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//第二套体系
//nextLine(); 接收字符串
//可以接收空格、制表符,遇到回车才停止接受数据
System.out.println("请输入一个字符串");
String line1 = sc.nextLine();
System.out.println(line1);
System.out.println("请输入第二个字符串");
String line2 = sc.nextLine();
System.out.println(line2);
}
}
==========================================================================
运行结果:
请输入一个字符串
asd fghh
asd fghh
请输入第二个字符串
asdfgghh 12555
asdfgghh 12555
输出
sout
1、换行输出:
System.out.println();
2、非换行输出
System.out.print();
souf
非换行输出
System.out.printf("");
souf 输出的参数分为两部分:
(1) 第一部分参数:要输出的内容 + %s (占位)
(2) 第二部分参数:填充的数据
package Just.test;
public class Test2 {
public static void main(String[] args) {
//souf 两部分参数
//第一部分参数:要输出的内容 + %s(占位)
//第二部分参数:填充的数据
System.out.printf("你好啊%s","张三");//第一部分:你好啊%s 第二部分填充数据:张三
System.out.println();//换行
System.out.printf("%s你好啊%s","张三","李四");//两个占位,需要对应两个 填充数据
}
}