本人大一,正在学习java中,文章有什么不对地方,欢迎大家交流指正,共同学习进步!🐵🐵🐵
文章目录
一.注释
-
含义;在代码中,用于解释说明代码的部分就是注释,不参与程序的运行
-
注释特点:
- 编译器不会把注释当做程序的一部分去解析, 执行的过程中碰到注释就会直接跳过(忽略)
- 注释的分类:
-
单行注释: 使用的符号 //
-
作用可以注释掉一行内容, //后面的内容都是注释部分
-
其特点: 单行注释可以嵌套 // //
-
多行注释: 使用的符号/* */ 两个符号中间的部分就是要被注释的内容
-
其特点:多行注释不能嵌套多行注释
-
文档注释:/** */
4.注释的作用:
-
对程序起到解释说明的作用,至少要达到30%注释率
-
可以对程序的设计思路进行描述
-
对程序进行调试,可以通过注释的方式,快速的定位出错误代码的位置
-
代码示例:
/* java程序中最基本的组成单位是类 类的定义格式: public class 类名{ } 下面是定义的HelloWorld类 */ public class HelloWorld{ //main方法是程序的入口方法,代码的执行是从main开始的 public static void main(String[] args){ //下面是一条输出语句 System.out.println("HelloWorld"); } }
二.关键字
-
含义:在java语言中,是被赋予特殊含义的一些英文单词
-
图示基本的关键字:
- 特点:
-
全部小写
-
给使用标识符起名字的时候,一定不要和这些关键字重名
-
有两个关键字是目前还没有被使用的, const, goto,不代表以后不会被使用
-
常用的代码编辑器,对这些关键字有特殊的颜色标记,非常直观明白
三.常量
- 含义:在程序的执行过程中,其值不能发生改变的量
- 常量根据不同表现一些的分类:
- 字面常量:写出常量的值,这个值就代表常量,如: 3, 1 0, 3.14
- 字符常量:给一个字面常量设置符号,使用这个符号存储字面常量的值,此符号就是字符常量,如:PI = 3.14
- 根据不同数据类型分类:
-
基本数据类型的常量: 简单数据类型
-
整型常量: 所有整数: 例如: 1, -1, -10
-
小数常量: 所有小数: 例如: 3.14, 13.14,5.20
-
字符常量: 使用单引号括起来的单个字符就是字符常量,如:’a’, ‘A’, ‘$’,但注意单引号中只能放一个符号
-
布尔常量: 用来表示真真假假的常量, true和false
-
字符串常量: 使用双引号括起来字符就是字符串常量,比如: “A”,“abcd”
-
空常量:表示空,不指向任何类型: null
-
引用数据类型的常量: 使用基本数据类型组合成的类型就是引用数据类型
-
整型常量的默认数据类型都是int类型,随便写出一个整数只要在 -2^31~ 2^31 -1之间,就是使用 int类型变量来存储这个整型数据
-
如果写的整数超过了int类型范围,此时需要使用long类型变量存储,如何表示一个整型是long的类型: 在这个整型常量后加L;
-
小数类型的常量默认都是double类型,如果想表示一个4个字节的小数常量,在小数常量后加一个f或F
-
代码示例:
public class ConstantDemo{ public static void main(String[] args){ //整形常量 System.out.println(1); System.out.println(100); System.out.println(-10); System.out.println("--------------"); //小数常量 System.out.println(3.14); System.out.println(13.14); System.out.println(5.20); System.out.println("--------------"); //字符常量 System.out.println('a'); System.out.println('A'); System.out.println('B'); System.out.println("--------------"); //布尔常量 System.out.println(true); System.out.println(false); System.out.println("---------------"); //字符串常量 System.out.println("A"); System.out.println("abcd"); System.out.println("---------------"); //空常量不能用来打印, 只能用来给某个应用类型变量赋值 // System.out.println(null); } }
-
代码运行结果:
四.数据类
- java是一种强类型语言:在定义变量的时候需要显示的说明变量在内存中所占空间大小,空间大小就是由数据类型决定,java提供丰富的数据类型
- 基本数据类型: 四类八种
byte 字节 | 1个字节 | -128~127 |
---|---|---|
short 短整型 | 2个字节 | -2^15~ 2^15-1 |
int 整型 | 4个字节 | -2^31~ 2^31-1 |
long 长整型 | 8个字节 | -2^63~ 2^63-1 |
float 单精度小数 | 4个字节 | 负数:-3.402823E+38到-1.401298E-45 正数:1.401298E-45到3.402823E+38 |
double 双精度小数 | 8个字节 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324到1.797693E+308 |
char 字符类型 | 2个字节 | 0~65535 |
boolean 布尔类型 | 1个字节或4个字节 | true,false |
- 代码示例:
public class ConstantDemo{
public static void main(String[] args){
// 定义基本数据类型变量
// 字节变量
byte b = 127;
System.out.println(b);
// short类型变量
short s = 100;
System.out.println(s);
// int类型变量
int i = 200;
System.out.println(i);
// long类型变量 超过int类型范围,需要在long类型常量加L
long l = 10000000000L;
System.out.println(l);
// float类型变量 java中所有小数常量默认都是double, float类型常量加F;
float f = 3.14F;
System.out.println(f);
// double类型变量
double d = 1.80;
System.out.println(d);
// char变量
char c = 'A';
System.out.println(c);
// boolean类型
boolean bo = true;
System.out.println(bo);
// 定义整数:一般使用int类型变量,小数使用double;
}
}
- 代码运行结果:
- 类型转换
-
当小范围的数据类型数据给大范围的数据的数据赋值的时候,会把小范围数据类型数据自动提升为大范围数据类型的数据,提升之后使用这个数据可以继续进行运算.运算的结果还是大范围数据类型的;
-
数据类型范围比较:从小到大
byte < short = char < int < long < float <double
-
注意:byte,short,char在做运算的时候自动向上转型,转为int,两个int做运算不会自动向上转型
-
大的范围类型的数据,要转为小范围类型的数据,就需要做显示(强制)转换;
-
强制转换的格式: (小范围的数据类型)大范围的数据类型的数据
注意: 强制转换运行结果,可能想象的结果不一样,有可能会出现丢失
- 代码示例:
public class ConstantDemo{
public static void main(String[] args){
//自动类型转换
double d=20;
System.out.println(d);
byte b=10;
short s=b;
int i=b;
long l=b;
float f=b;
double h=b;
//强制类型转换
byte g=(byte)100;
System.out.println(g);
}
}
- 代码运行结果:
五.变量
-
含义:在程序执行过程中,其值可以发生改变的量
-
定义变量的格式:数据类型 变量名 = 变量值(初始值);
-
使用的变量的原因:
- 在程序运行过程中有一些值会发生变化,就需要一个东西来维护需要变化的数据,这个就是变量.
- 变量代表意义:
- 变量真正代表是内存中一块存储空间,定义的变量名其实就是让这个变量名指向那块存储空间,通过变量名就可以操作存储空间.
注意事项:
变量是有”作用域”的:作用域:就是变量起作用一个范围
范围:变量在哪个大括号中定义,变量它的作用范围就是这个大括号括着的范围
在同一个作用域中, 不能定义同名的变量
变量必须先赋值,才能使用,不能使用一个没有赋值的变量
变量的定义和变量赋值可以”分离”:可以先定义变量: 数据类型 变量名;再赋值: 变量名 = 值;
long类型的定义变量的时候,为防止整数过大,后面加L,float类型的定义变量的时候,为了防止类型的不兼容,后面加上F
六.标识符
-
含义:用于给java中包,类,变量,常量,接口,抽象类,枚举起名字用的字符序列
-
组成:英文字母,数字,美元符,下划线
-
标识符使用时注意事项:
- 不要和关键字重名 如:class错误
- 严格区分大小写 如:Class正确
- 不要使用数字开头
- 命名约定:
- 小驼峰命名法(方法名 变量):标识符是一个单词的时候,首字母小写;如:name
标识符由多个单词组成的时候,第一个单词首字母小写,其余单词首字母大写;如:firstName
- 大驼峰命名法(类 接口):标识符是一个单词的时候,首字母大写;如:Person
标识符由多个单词组成的时候,每个单词首字母大写;如:GoodStudent
七.运算符
1.算数运算符
- 图示:
符号 | 作用 |
---|---|
+ | 加 |
— | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
注意事项:
- /和%的区别:两个数据做除法,/取商,%取余
- 整数操作只能得到整数,欲得小数,需要小数参与代码示例:
- 代码示例:
public class ConstantDemo{
public static void main(String[] args){
int i=10;
int h=2;
System.out.println(i+h);
System.out.println(i-h);
System.out.println(i*h);
System.out.println(i/h);
System.out.println(i%h);
//小数参与会得到小数的结果
System.out.println(10.0/2);
}
}
- 代码运行结果:
2.字符串的+操作
-
使用双引号引起来就是一个字符串数据类型数据,如果是字符串类型变量,存储的是字符串中那些字符在内存中地址,java中字符串类型名:String
-
字符串和其他类型数据可以拼接: 使用+符号
-
+表示拼接,拼接之后会自动转为字符串类型
-
当"+“操作中,出现的字符串时,就是字符串连接符,否则就是算术运算;当连续出现”+"操作时,从从左到右逐个执行
-
代码示例:
public class ConstantDemo { public static void main(String[] args) { //定义字符串类型变量 String name = "nick"; System.out.println(name); String age = "20"; System.out.println(age); // 我的名字是:nick, 我的年龄是: 20 // + 在连接两个字符串的时候,表示拼接字符串 System.out.println("我的名字是:"+name); System.out.println("年龄是:"+age); double height = 1.85; System.out.println("身高是:"+height); System.out.println("我的名字是:"+ name + "年龄是:"+age + "身高是:"+height); // 字符串和其他类型拼后自动转为字符串类型 boolean b = true; String str = b+""; System.out.println(str); } }
-
代码运行结果:
3.字符的+操作
- 在计算机中,所有的数据是使用数字来进行表示,字符也不例外;
- 字符和计算机中数字是有一个对应关系的,每个一个字符都会对应一个数字
-
从字符到数字转换的过程,称之为 “编码”;
-
数字和字符转换是依赖一个编码表工具
-
代码示例:
public class ConstantDemo { public static void main(String[] args) { int i=10; char c='a';//a的值97 char d='A';//A的值65 char h='0';//0的值48 char e='B';//B的值66 System.out.println(i+'a'); System.out.println(i+'A'); System.out.println(i+'0'); System.out.println(i+'B'); } }
-
代码运行结果:
4. 赋值运算符
-
= 赋值运算符
-
+= 用来简化一个变量加上某个数之后重新又赋值自己(加后赋值)
-
*= 用来简化一个变量乘以某个数之后重新赋值给自己(乘后赋值)
-
/= 用来简化一个变量除以某个数之后重新赋值给自己 (除后赋值)
-
%= 用来简化一个变量对某个取余之后,把余数赋值给自己(取余后赋值)
-
-= 用来简化一个变量减去某个数之后重新又赋值自己(减后赋值)
注意:扩展的赋值运算符底层隐含了强制类型转换
-
代码示例:
public class ConstantDemo {
public static void main(String[] args) {
int i=50;
System.out.println(i);
i+=i;//i=i+50
System.out.println(i);
i-=i;//i=i-50
System.out.println(i);
}
}
- 代码运行结果:
5.自增自减运算符
- ++:自增运算符,作用:在某个变量基础自增1
- ++在变量前,先对变量+1,再取出变量中值做运算;++在变量后,先取出变量的值做运算,再对变量+1; 但是无论++在前还是在后,变量最终都会+1
- –:自减运算符,作用:在某个变量基础自减1
- –在变量前,先对变量-1,再去出变量中值做运算;–在变量后,先取出变量的值做运算,再对变量-1;但是无论–在前还是在后,变量最终都会-1
注意:上面是单独使用的情况。
当参与操作的时候,如果放在变量的后面,先拿变量参与操作,后拿变量做++或–
当参与操作的时候,如果放在变量的前面,先拿变量做++或–,后拿变量参与操作
- 注意事项的代码案例:
public class ConstantDemo {
public static void main(String[] args) {
int i=20;
System.out.println("i:"+i);
//参与操作运算
int h=++i;
System.out.println("i:" +i);
System.out.println("h:" +h);
}
}
- 运行结果:
6,关系运算符
-
用于比较两个数据是否相等,或者是大小关系的运算符, 这种运算返回值是布尔类型
-
分类:
-
是否相等: == 等于, !=不等于
-
大小关系:>, <, >=, <= 这四个只能比较基本数据类型数据(整数, 小数,字符)
- 以上几种关系运算符,返回结果都是boolean类型, 为真是true, 为假是false
7,逻辑运算符和短路逻辑运算符
-
逻辑运算符处理的数据:逻辑值, 处理的结果也是逻辑, 逻辑值就是boolean类型数据
-
分类:
-
普通逻辑运算符: &, |, ^, !
-
短路逻辑运算符: &&, ||
- &和&& 逻辑与, 两边时为真则为真,一边为假则为假
true & true true
true & false false
false & true false
false & false false
- | 和 || 逻辑或 两边有一边为真则为真, 两边同时为假才为假
true | true true
true | false true
false | true true
false | false false
- !逻辑非, 非真则为假,非假则为真
!true false
!false true
- ^逻辑异或 相同则为假, 不同则为真
true ^ true false
true ^ false true
false ^ true true
false ^ false false
7.&&和||短路运算符
-
&&和&执行的情况是一样的, || 和 | 执行情况也一样
-
&&的短路现象,只要&&运算符前面的逻辑为假,后面的表达式就不再运算了,所以以后如果是&&运算符连接的情况,把容易为假写前面.
-
||的短路现象,只要||运算符前面的逻辑为真,后面的表达式就不在运算了,所以以后如果是||运算符连接的情况,把容易为真写前
- 代码案例:
public class ConstantDemo {
public static void main(String[] args) {
int i=10;
int h=15;
int u=20;
//逻辑与&
System.out.println((i>h)&(i>u));//false&false
System.out.println((i>h)&(i<u));//false&true
System.out.println((i<h)&(i>u));//true&false
System.out.println((i<h)&(i<u));//true&true
System.out.println("-----------------");
//逻辑或
System.out.println((i>h)|(i>u));//false|false
System.out.println((i>h)|(i<u));//false|true
System.out.println((i<h)|(i>u));//true|false
System.out.println((i<h)|(i<u));//true|true
System.out.println("-----------------");
//逻辑异或
System.out.println((i>h)^(i>u));//false^false
System.out.println((i>h)^(i<u));//false^true
System.out.println((i<h)^(i>u));//true^false
System.out.println((i<h)^(i<u));//true^true
System.out.println("-----------------");
//逻辑非
System.out.println(i>h);//false
System.out.println(!(i>h));//true
}
}
- 代码运行结果:
8.三元运算符
-
格式:关系表达式?表达式1:表达式2;如:a>b?a:b;
-
规则:首先计算关系表达式的值,如果为真,表达式1就为运算结果,反之,则为表达式2为运算结果
-
代码示例:
public class ConstantDemo {
public static void main(String[] args) {
int i=10;
int h=30;
int j=i>h? i:h;
System.out.println(j);
//则控制台会输出30
}
}
八.数据输入
-
键盘录入:在程序运行期间,可以让用户录入一些数据,存储到程序中变量里,在后面的程序使用录入的变量值进行运算;
-
使用步骤:
-
导包, 在类的上面声明一条语句: import java.util.Scanner(导包)
-
创建对象Scanner: Scanner sc = new Scanner(System.in);(sc为变量名) (创建对象)
-
调用sc对象的方法nextInt,获取用户使用键盘录入整数: int i= sc.nextInt();(i为变量名) (接收数据)
- 代码案例:
// 1.导入键盘录入类所在的包
import java.util.Scanner;
public class ConstantDemo {
public static void main(String[] args) {
// 2. 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 3.调用sc的nextInt方法,并定义变量接收用户输入的结果
System.out.print("请输入一个整数:");
int num = sc.nextInt();
// 4.使用num中值
System.out.println("用户录入的整数是:"+num);
}
}
- 代码运行:
- 代码案例:
//导包
import java.util.Scanner;
public class ConstantDemo {
// 用户录入三个数据,求出这三个数的最大数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int n1 = sc.nextInt();
System.out.print("请输入第二个整数:");
int n2 = sc.nextInt();
System.out.print("请输入第三个整数:");
int n3 = sc.nextInt();
/*
// 1.先求出任意两个数的最大值
int max = n1 > n2 ? n1 : n2;
// 2.拿前两个数的最大值和剩下的第三个数字比较,那个大那个就是这个
// 三个中的最大值
max = max > n3 ? max : n3;
*/
//或者下面的方法一步到位
int max = (n1 > n2 ? n1 : n2) > n3 ? (n1 > n2 ? n1 : n2) : n3;
System.out.println("三个数的最大值是:"+max);
}
}
- 代码运行: