Java第二课
一、Idea结构
二、注释
实际开发中总比例:源码/注释=1/3
1. 注释的两个功能
1解释提示:规范也是一种素养
2暂时不用的代码,注释后代码不会被编译执行
2. 注释的分类
- 单行注释:
`//XXX`
- 多行注释:
/*
XXX
...
XXX
*/
- 文档注释
/**
*XXX
*XXX
*/
三、缩进
作用:提升代码的层次
以{}为媒介,每一层{}缩进一个单位:tab或\t
{
XXX{
XXX
}
}
idea快捷键ctrl+shift+L
四、Java基础命令
1. 控制台输出
// An highlighted block
System.out.println("换行输出");
System.out.print("不换行输出");
转义符
\t 相当于tab制表符
\n相当于换行System.out.println("");
public class Hello{
public static void main(String[] args){
// System.out.println("姓名\t年龄\t性别");
// System.out.println("张三\t18\t男");
// System.out.println("李四\t19\t男");
String name1="张三";
char gengder1='男';
byte age1=23;
double mony1=2000.56;
boolean isMember1=true;
String name2="王二";
char gengder2='女';
byte age2=26;
double mony2=23000.56;
boolean isMember2=false;
System.out.println("姓名"+"\t"+"性别"+"\t"+"年龄"+"\t"+"工资"+"\t\t"+"是否党员");
System.out.println(name1+"\t"+gengder1+"\t"+age1+"\t"+mony1+"\t\t"+isMember1);
System.out.println(name2+"\t"+gengder2+"\t"+age2+"\t"+mony2+"\t"+isMember2);
}
}
2. 数据类型
基本数据类型
四类八种
字符型:
- char ‘’
默认值就是’\u0000’
整数型
- 字节:byte 一个字节八位 -128~+127 范围是2的八次方
- 短整型:short -32768~+32767 范围是2的16次方
- 整型:int ±21亿 范围是2的32次方
- 长整型:long 范围2的64次方
小数型
- 单精度 float
- 双精度 double 范围比单精度大
他们是近似类型,非精确类型
布尔型
- boolean false/true
引用数据类型
字符串型:String “”
字符串默认是常量,拼接会导致不断的开辟新的空间,所以+拼接字符串会导致效率低下,所以用字符串的格式化
字符串的格式化不会重复开辟空间,而是开辟足够大的空间
String info = MessageFormat.format("姓名{n}年龄{n+1}姓名{n}",name,age,name)
默认值是null
3. 变量常量
变量:值可以改变的存储空间
变量的声明与赋值: 数据类型 变量名 =值;
变量命名规则:
a、第一个开头字母小写,下一个单词开头字母大写(驼峰命名规则)
b、首字母也可以是、_、$、¥但不能是数字
c、整体要见名知意
String name = "张三";
int age = 18;
char geneder = '男';
boolean isMember = false;
double money = 12356.3;
声明可以一句话赋值多个变量
int i,j=5,k;//都是int 类型
常量:值不可以改变的存储空间
声名赋值 final 数据类型 常量名 = 值;
命名规则
a、全部大写用下划线分割
final String MY_NAME="张三";
4. 数值类型转换
范围大小:byte<short<int<long<float<double
前4个是整数后两个是小数
- 自动类型转换
小范围变大范围
int a=100;
double b=a;
- 强制类型转换
大范围转小范围
缺点:会造成精度的损失
double a1=100.36;
int b1=(int)a1;
//自动类型转换
int a=100;
double b=a;
System.out.println(b);
//强制类型转换
double a1=100.36;
int b1=(int)a1;
System.out.println(a1);
System.out.println(b1);
结果
100.0
100.36
100
int转long:默认类型是int要转成long类型
long time = 11111111111111L
double转float:默认类型是double要转成float类型
double t = 0.005F
5. 控制台输入
public static void main(String[] args) {
//创建工具对象
Scanner input = new Scanner(System.in);
//输入之前,需要提示语句
System.out.print("请输入姓名");
//控制台输入,用一个变量接收否则输入的值会丢失
String name=input.next();
System.out.println("您的姓名为:");
System.out.println(name);
}
结果
请输入姓名迪丽热巴
您的姓名为:
迪丽热巴
各种数据类型Scanner输入
Scanner input = new Scanner(System.in);
//字符串
String val1=input.next();
//字符
char val2=input.next().charAt(0);
//其他
int val3=input.nextInt();
xxx valx=inputXxx();
//关闭(可以没有)
input.close();
当输入值和需要的类型不一致时会出现异常
java.util.inputMismatchException
6. 运算符
赋值运算符
int a= 1;
算术运算符
public static void main(String[] args) {
//算术运算符
int a=5;
int b=2;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a*1.0/b);
System.out.println(a%b);
}
结果
7
3
10
2
2.5
1
当运算符是除法时
- 分母不能是0,否则出现算术异常
java.lang.ArithmeticException: / by zero`
public static void main(String[] args) {
int a = 2;
System.out.println(++a);//先加后执行
int b = 2;
System.out.println(b++);//先执行后加
int c = 2;
System.out.println(c += 2);//c+=2就是c=c+2
}
结果
3
2
4
-=、*=、/= 和 += 类似
关系运算符
<、 > 、 <=、>=、==、!=
返回值是boolean
public static void main(String[] args) {
int a = 2;
int b = 3;
System.out.println(a > 3);
}
结果
false
逻辑运算符
一元运算符
!非:把真变假,假变真
二元运算符
&&(并)都是true才是true
||(与)有一true就是true
//&&注意事项
int a=2;
System.out.println(a<2&a++>2);
System.out.println(a);
int b=2;
System.out.println(b<2&&b++>2);//一旦前面是false,后面的比较就没意义了,所以后面的b++就不会执行
System.out.println(b);
int c=2;
System.out.println(c<=2&&c++>2);//只有前面是true,后面的b++才会执行
System.out.println(c);
结果
false
3
false
2
false
3
三元运算符
String s =条件?条件为true时执行:条件为false时执行;
public static void main(String[] args) {
//三元运算符
byte sex=1;//男1女0
String gender=sex==1?"男":"女";
System.out.println(gender);
}
结果
男