Day04-05
Java基础语法
注释
作用
- 当项目结构一旦复杂起来,使用注释进行理解
- 书写注释是个非常好的习惯
类型
- 单行注释
- 多行注释
- 文档注释
public class HelloWorld {
public static void main(String[] args) {
//输出一个Hello,world!
//单行注释(注释并不会执行,便于理解)
System.out.println("Hello,world!");//可在后面注释,但不能前面加注释
}
}
//多行注释 语法结构: /* 注释内容 */
/*
我是多行注释
多行注释是我
*/
//JavaDoc:文档注释 语法结构: /** 注释内容(可以增加可识别的参数) */
/**
* @Desciption HelloWorld
* @Author Hanker-cc
*/
标识符
关键字
注意事项
- 所以标识符都应该以字母、美元符号$或者下划线(_)
- 即不能为数字,#或者%
- 不能使用关键字作为变量名或者方法名
- 标识符是大小写敏感
- 在命名之中,最好使用英文,养成良好习惯
public class StringStudy {
public static void main(String[] args) {
String teacher = "Hanker";
String Teacher = "hanker";
String Name = "King of Honor";
System.out.println(teacher);
System.out.println(Name);
System.out.println(Teacher);
}
}
数据类型
强类型语言(安全性高速度慢)
- Java为强类型语言:即要求变量的使用需要严格符合规定,所以变量都必须先定义后使用
弱类型语言(相对相反)
- eg:JavaScript
Java数据类型

public class Demo01 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1=10; //常用整数类型
byte num2=20;
short num3=30;
long num4=30L;//相同定义30时,需要在long类型后加L
//浮点数
float num5=50.1F;//float类型需要在后面加F
double num6=3.14159265358979323842643;//常用
//字符 (字符是代表一个字)
char name='A';//单引号是字符char,双引号是string
//字符串,String不是关键字,是一个类(类是引用类型)
String name2="Hanker";
//布尔值,只有true和false
boolean flag=true;
boolean gg=false;
}
}
数据类型扩展及面试题
public class Demo02 {
public static void main(String[] args) {
//整数拓展:进制问题
//二进制0b开头 十进制 八进制0 十六进制0x
int oi=10;
int oi2=0110;//八进制0
int oi3=0x69;//十六进制0x 0-9 A-F 16
System.out.println(oi);
System.out.println(oi2);
System.out.println(oi3);
System.out.println("=======================");
//============================================
//浮点数拓展
//float 字长有限 离散 舍入误差 得到大约数(接近但不等于)
//double
float a=0.01f;//等于0.01
double b=0.1/10;//等于0.01
System.out.println(a);
System.out.println(b);
System.out.println(a==b);//false
float c=983101379;//等于983101379
float d=c+1;//等于983101380
System.out.println(c==d);//ture
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//使用类进行解决 BigDecimal(数学工具类)
System.out.println("=======================");
//===================================================
//字符拓展
char c1='a';
char c2='中';
char c3='国';
System.out.println(c1);
System.out.println((int)c1);//强制转换,字母成数字
System.out.println(c2);
System.out.println((int) c2);//强制转换,文字成数字
System.out.println(c3);
System.out.println((int) c3);//强制转换,文字成数字
//所有字符本质是数字
//编码 Unicode 存在编码表进行转换 2字节
//反表示:U0000 UFFFF
char c4='\u0066';
System.out.println(c4);//代表f
System.out.println("===================================");
//==================================================
//转义字符
// \t制表符;\n换行;
System.out.println("Hello,world");
System.out.println("Hello\tworld");
System.out.println("Hello\nworld");
System.out.println("===================================");
//====================================================
//布尔值扩展
boolean flag=true;
if (flag){};//老手
if(flag==true){};//新手
//67与68本质相同,flag默认为true条件
//Less is more! 老手时代码要精简易读
}
}
类型转换
- Java是强类型语言,进行运算时需要用到类型转换
- 一般而言,不同类型数据应先转化为同一类型,然后在进行运算
浮点数优先级高于整数

public class Demo03 {
public static void main(String[] args) {
int i=128;
byte b=(byte)i;//强制转换:(类型)变量名
System.out.println(i);//输出128
System.out.println(b);//输出-128;为内存溢出现象,超过它的字节范围
//byte类型中的字节范围为-127~127
//从高到低为强制转换
//从低到高为自动转换
byte a=125;
int c=a+1;
System.out.println(a);
System.out.println(c);
//==================================================
char q='a';
int w=q+9;
System.out.println(w);//低到高,字符到数字
System.out.println((char) w);//低到高,数字到字符
System.out.println(23.7);
System.out.println((int)23.7);//输出23,存在精度问题
/*
注意点:
1.不能对布尔值进行转换,因为只有true和false
2.不能把对象类型转换为不相干的类型
3.转换的时候可能存在内存溢出,或者精度问题
*/
}
}
在计算中的注意点
public class Demo04 {
public static void main(String[] args) {
//操作比较大的数字时,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total);//输出-147486480,内存溢出
long total2=money*years;
System.out.println(total2);//输出同样溢出,计算原理是先在int类型中计算出结果
//即转换之前已经存在问题
long total3=money*((long)years);
System.out.println(total3);
//虽然int转换为long是低到高的自动转换,但是计算中需要转先,避免计算优先
}
}
浙公网安备 33010602011771号