1、java基础语法
1.1 注解
注解分类:
单行注释:
格式: //注释信息
快捷键:选中区域+alt+/ 取消注释同样
多行注释:
格式: /*注释信息*/
快捷键:
添加注解:选中区域+Ctrl+shift+/
取消注释:选中区域+Ctrl+shift+\
文档注释:
格式: /**注释信息*/
快捷键:alt+shift+j
1.2 关键字
关键字就是被Java语言赋予了特定含义的单词。
关键字的特点:
1、关键字的字母全部小写
2、常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
public class helloworld{
/*
这是main方法
main方法是程序的入口方法,代码的执行是从main方法开始的
*/
public static void main (String[args) {
//这是输出语句," "里面的内容是可以改变的
system.out.println ( ""itheima"");
}
}
1.3 常量
常量概述:常量是指在程序运行过程中,其值不可以发生改变的量。
.
java中常量分类如下表:
注意:空常量 null 不能直接输出
1.4 数据类型
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
.
Java中数据分类如下图:
.
Java中数据类型内存占用和取值范围如下表:
1.5 变量
变量:是指在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中一小块区域。
.
变量的定义:
格式 : 数据类型 变量名 = 变量值;
范例: int a = 10;
.
变量的取值:
取值格式:变量名
范例: a
.
变量的修改值:
格式: 变量名 = 变量值;
范例: a = 20;
.
代码演示
public class variableDemool {
public static void main (String [] args){
//定义变量
int a = 10 ;
//输出变量
system.out.println(a) ;
//修改变量
a = 20;
system.out.println(a) ;
}
}
运行结果:
变量使用注意事项:
1、名字不能重复
2、变量名未赋值,不能使用
3、long 类型的变量定义时,为防止整数过大,后面要加L
4、float 类型的变量定义时,为了防止类型不兼容,后面要加F
1.6 标识符
标识符: 就是给类,方法,变量等起名字的符号。
标识符定义规则:
1、由数字、字母、下划线_)和美元符($)组成
2、不能以数字开头
3、不能是关键字
4、区分大小写
.
常见命名约定
小驼峰命名法: 主要针对方法、变量
约定1:标识符是一个单词的时候,首字母小写
范例1: name
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
范例2: firstName
.
大驼峰命名法: 主要针对类
约定1:标识符是一个单词的时候,首字母大写
范例1: Student
约定2:标识符由多个单词组成的时候,每个单词首字母大写
范例2: GoodStudent
1.7 类型转换
1、自动类型转换:
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
范例: doubled = 10; //将int型10转换成float型10.0
public class conversionDemo {
public static void main(String [] args){
//自动类型转换
double d = l0;
system.out.println (d);
//定义byte类型的变量
byte b = l0;
short s = b;
int i = b;
}
}
2、强制类型转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
范例: int k = (int)88.88; //将float类型的88.88强制转换成int类型的88
2、运算符
2.1 算术运算符
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明:
int a = 10;
int b = 20;
int c = a + b;
+ 是运算符,并且是算术运算符
a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式
java中算术运算符如下表:
.
字符“+”操作 :是拿字符在计算机底层对应的数值来进行计算的
public class OperatorDemo02{
public static void main(String[] args){
// 定义两个变量
int i=10;
char c = 'A'; //'A'的值是65
c = 'a' ; // ' a'的值是97
c = '0' ; // 'o'的值是48
system.out.println (i+c) ;
//char类型会被自动提升为int类型
int j=i+c;
system.out.println (j) ;
double k =10+l3.14;
system.out.println (k) ;
}
}
.
字符串“+”操作:
public class OperatorDemo03 {
public static void main(String[] args){
system.out.println( "it" + "heima" );
system.out.println( "itheima" + 666);
system.out.println(666 + "itheima");
system.out.println("黑马" + 6 + 66);
system.out.println(1 + 99 + "年黑马");
}
}
.
运行结果:
.
2.2 赋值运算符
public class OperatorDemo {
public.static void main(String[]args){
//把10赋值给int类型的变量i
int i = 10;
System.out.println( "i:" + i) ;
// += 把左边和右边的数据做加法操作,结果赋值给左边
i+=20; //等同于 i =i +20;
system.out.println( "i:" +i);
//注意:扩展的赋值运算符底层隐含了强制类型转换
short s = 10;
s +=20;
system.out.println( "s: " + s);
}
}
.
2.3 自增自减运算符
public class OperatorDemo {
public static void main(String[]args){
//定义变量
int i = 10;
System.out.println ( "i:" +i);
//单独使用
//i++;
//++i;
//System.out.println ( "i:" + i);
//参与操作使用
//int j=i++;
int j=++i;
system.out.println ( "i:"+i);
system.out.println (""j:"+j);
}
}
.
2.4 关系运算符
public class OperatorDemo {
public static void main(String[]args){
//定义变量
int i = 10;
int j = 20;
int k = 10;
// ==
system.out.println (i == j);
system.out.println (i == k);
system.out.println ( "--------") ;
// !=
system.out.println(i != j);
system.out.println (i != k);
system.out.println ( "--------" );
// >
system.out.println (i > j);
System.out.println(i > k);
system.out.println ( "--------");
// >=
system.out.println(i >= j);
system.out.println(i >= k);
system.out.println ( "------");
}
}
.
2.5 逻辑运算符
逻辑运算符概述:
.
逻辑运算符
public class operatorDemo0l {
public static void main(String[] args){
// 定义变量
int i = 10;
int j = 20;
int k = 30;
// & 有false则false
system.out.println((i > j) & (i > k)); // false & false
system.out.println((i < j) & (i > k)); // true & false
system.out.println((i > j) & (i < k) ); // false & true
system.out.println((i < j) & (i < k) ); // ltrue & true
system.out.println ( "--------") ;
// | 有true则true
system.out.println((i > j) | (i > k)): // false | false
system.out.println((i < j) | (i > k)); // true | false
system.out.println((i > j) | (i < k)); // false | true
system.out.println((i < j) | (i < k)) ; // true | true
system.out.println ( "--------") ;
// ^ 相同为false,不同为true
system.out.println((i > j) ^ (i > k)); // false ^ false
system.out.println((i < j) ^ (i > k)); // true ^ false
system.out.println((i > j) ^ (i < k)); // false ^ true
system.out.println((i < j) ^ (i < k)); // ltrue ^ true
system.out.println ( "--------"") ;
// !
system.out.println((i > j)); //lfalse
system.out.println(!(i > j)); // ! false
system.out.println(!!(i >j)); // !! fal
sesystem.out.println(!!!(i > j)); // !!! false
部分运行结果:
.
短路逻辑运算符
public class operatorDemoo2 {
public static void main(String [] args){
// 定义变量
int i = 10;
int j = 20;
int k = 30;
// && 有false则false
system.out.println((i > j) && (i > k)); //false && false
system.out.println((i < j) && (i > k)); //true && false
system.out.println((i > j) && (i < k)); //false && true
system.out.println((i < j) && (i < k) ); //true && true
system.out.println ( "--------");
// || 有true则true
system.out.println((i > j) || (i > k)); // false || false
system.out.println((i < j) || (i > k)); // true || false
system.out.println((i > j) || (i < k)); // false || true
system.out.println((i < j) || (i < k)); // true || true
system.out.println ( "--------");
}
}
.
2.6 三元运算符
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);
)
}
3、java中数据的输入
java中数据输入使用的是Scanner类
// 导包
import java.uti1.scanner;
public class scannerDemo {
public static void main(String[] args) {
// 创建对象
scanner sc = new scanner(system.in);
// 接收数据
int x = sc.nextInt("请输入数据:");
// 输出数据
System.out.println( "x:" + x);
}
}
4、分支语句
4.1 流程控制
流程控制语句分类:
顺序结构:顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构
按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
分支结构(if, switch)
循环结构(for, while, do...while)
4.2 if 语句
if 语句格式1:
if(关系表达式){
语句体;
}
执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体
3、如果关系表达式的值为false就不执行语句体
4、继续执行后面的语句内容
public class IfDemo{
public static void main(String[] args){
system.out.println("开始");
// 定义两个变量
int a = 10;
int b = 20;
// 需求:判断a和p的值是否相等,如果相等,就在控制台输出:a等于b
if(a == b){
system.out.println ("a等于b");
}
//需求;判断a和c的值是否相等,如果相等,就在控制台输出;a等于c
int c = 10;
if(a == c){
system.out.println("a等丁于c");
}
system.out.println("结束");
}
}
.
if 语句格式2:
if(关系表达式){
语句体1;
}else {
语句体2;
}
执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体1
3、如果关系表达式的值为false就执行语句体2
4、继续执行后面的语句内容
public class IfDemo02{
public static void main(String[] args){
system.out.println("开始"");
// 定义两个变量
int a = 10;
int b = 20;
//需求:判断a是否大于b,如果是,在控制台输出: a的值大于b,如果不是,在控制台输出: a的值不大于b
if(a > b){
system.out.println("a的值大于b");
}else{
system. out.println("a的值不大于b");
}
system.out.println("结束");
}
}
.
if 语句格式3:
if (关系表达式1){
语句体1;
} else if (关系表达式2){
语句体2;
}
…
else {
语句体n+1;
}
执行流程:
1、首先计算关系表达式1的值
2、如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
3、如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
4、......
6、如果没有任何关系表达式为true,就执行语句体n+1。
import java. util.Scanner;
public class IfDemoo3{
public static void main(String[] args){
system.out.println(开始");
//需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
Scanner sc = new scanner(system.in);
System.out.println ("请输入一个星期数(1-7): ");
int week = sc.nextInt();
if(week ==l){
system. out.println("星期—");
}else if(week == 2){
system.out.printin("星期二");
}else if(week == 3){
system.out.println("星期三");
}else if(week == 4){
system. out.printin("星期四");
}else if(week == 5){
system. out.printin("星期五");
}else if(week == 6){
system.out.println("星期六");
}else{
system.out.println("星期日");
}
system.out.println ("结束");
}
}
4.3 switch 语句
switch语句格式:
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
...
default:
语句体n+1;
[break]
}
执行流程:
1、首先计算表达式的值。
2、依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
3、如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。
注意:case具有穿透功能
import java. util.Scanner;
public class IfDemoo3{
public static void main(String[] args){
system.out.println(开始");
//需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
Scanner sc = new scanner(system.in);
System.out.println ("请输入一个星期数(1-7): ");
int week = sc.nextInt();
switch (week){
case l:
system.out.println("屋期一");
break;
case 2:
system.out.println("星期二");
break;
case 3:
system.out.println("星期三");
break;
case 4:
system.out.println("屋期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
system.out.println("星期日");
break ;
default:
system.out.println("你输入的星期数有误");
break ;
system.out.println("结束");
}
}
.
5、循环语句
5.1 for循环语句
循环结构:
循环结构的组成::
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
循环结构对应的语法:
初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作
条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如: a<3
循环体语句:这里可以是任意语句,这些语句将反复执行
条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i--这样的操作
.
for循环语句格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
执行流程:
1、执行初始化语句
2、执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3、执行循环体语句
4、执行条件控制语句,回到第二步继续
public class ForDemo{
public static void main(String[] args){
//需求:在控制台输出5次"Helloworld"
for(int i=l; i<=5; i++){
system.out.println("HelloWorld");
}
}
}
5.2 while循环语句
while循环语句格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
1、执行初始化语句
2、执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3、执行循环体语句
4、执行条件控制语句回到第二步继续
public class WhileDemo{
public static void main(String[] args){
//需求:在控制台输出5次"Helloworld"
int j = l; // 初始化语句;
while(j <= 5){ // 条件判断语句
system.out.println("Helloworld"); // 循环体语句;
j++; // 条件控制语句;
)
}
}
5.3 do…while循环语句
do...while循环语句格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
1、执行初始化语句
2、执行循环体语句
3、执行条件控制语句
4、执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行回到第二步继续
public class DoWhileDemo{
public static void main(String[] args){
//需求:在控制台输出5次"Helloworld"
int j = l; // 初始化语句;
do{
system.out.println("Helloworld"); // 循环体语句;
j++; // 条件控制语句;
}while(j <= 5); // 条件判断语句
}
}
.
三种循环语句的区别
5.4 控制跳转语句
跳转控制语句概述:
continue用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
break用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
public class controlDemo{
public static void main(String[] args){
for(int i = l;i <= 5;i++){
if(i % 2==0){
continue;
}
system.out.println(i);
}
}
)
public class controlDemo{
public static void main(String[] args){
for(int i = l;i <= 5;i++){
if(i % 2==0){
break;
}
system.out.println(i);
}
}
)
5.5 循环嵌套
public class TimeDemo{
public static void main(String[] args){
for (int hour=0 ; hour<24 ; hour++){
for(int minute=0 ; minute<60 ; minute++){
System.out.println (hour +"时” + minute + "分");
}
system.out.println ( "--------") :
}
}
)
5.6 Random
Random:是用于产生一个随机数
import java.util.Random;
public class RandomDemo{
public static void main(String [] args){
//创建对象
Random r = new Random ();
//用循环获取10个随机数
for(int i = 0;i < 10;i++){
//获取随机数
int number = r.nextInt(10);
system.out.println("number : " + number);
}
// 需求:获取一个1-10o之间的随机数
int x = r.nextInt(100)+ l;
system.out.println (x);
}
}