Java学习第四天 注释,标识符和关键字,数据类型及扩展面试题,类型转换
-
创建新项目,建立空项目,取名JavaSE,finish
-
file-new 模块,建立Java项目,取名基础语法
-
file-project structure或按钮 点project,选择自己Java版本,等级设置为8,Apply,OK
-
出现scr,右键new class,取名HelloWorld
-
psvm,sout("Hello,World!"),跑一下
-
单行注释 //输出一个Hello,World!
-
多行注释/* 内
容*/
-
文档注释/**回车
-
更改注释颜色 file-edtior-color scheme-Java-comments
-
百度搜有趣的注释
标识符和关键字
public class Demo01 {
public static void main(String[] args) {
//标识符开头以字母A-Z或a-z,$,_开始,首字符后随意,不能用关键词作变量名
String Hello="zhengtu";
String hello="zhengtu";
String $hello="zhengtu";
String _hello="zhengtu";
/*错误用法
String 1hello="zhengtu";
String #hello="zhengtu";
String *hello="zhengtu";
String -hello="zhengtu";
String class="zhengtu";*/
//标识符大小写敏感,大小写定义含义不同
String MAN="zhengtu";
String man="zhengtu";
//可用中文命名,但不规范
String 王者荣耀="百星王者";
System.out.println("王者荣耀");
}
}
数据类型
所有变量必须先定义后才能使用
public class Demo02 {
public static void main(String[] args) {
String a="hello";
//八大基本数据类型
//整数
int num=10;//最常用,4字节
byte num2=20;//1字节
short num3=30;//2字节
long num4=30L;//注意数字后加L,8字节
//小数,浮点数
float num5=50.1F;//注意加F,4字节
double num6=3.14159265358979;//8字节
//字符
char name='A';//2字节
//字符串,String不是关键字,类
String namea="征途";
//布尔值
boolean flag=true;//占1位
boolean flat=false;
System.out.println(a);
System.out.println(num);
}
}
数据类型扩展及面试题
public class Demo03 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=====================================================");
//=====================================================
//浮点数拓展
//BigDecimal 数学工具类(银行业务)
//=====================================================
//float 有限 离散 舍入误差 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f==d);//false
float d1=12331213211131321f;
float d2=d1+1;
System.out.println(d1==d2);//true
//=====================================================
//字符拓展
//=====================================================
System.out.println("=====================================================");
char c1='a';
char c2='中';
//所有字符本质还是数字
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
//Unicode表:(97=a 65=A) 占了2字节 长度0-65536
//U0000-UFFFF
char c3='\u0061';
System.out.println(c3);//a
//转义字符
//\t 制表符
//\n 换行
System.out.println("Hello\tWorld");
System.out.println("=====================================================");
String sa=new String("hello world");
String sb=new String("hello world");
System.out.println(sa==sb);//false
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd);//true
//对象 从内存分析
//布尔值扩展
boolean flag=true;
//if (flag){} 老手,代码精简易读
if (flag == true) {
System.out.println("OK");
}
}
}
类型转换
低到高,小数优先
public class Demo05 {
public static void main(String[] args) {
int i=128;
byte b=(byte) i;//内存溢出,强制转换要避免溢出
double c=i;
//byte,short,char---int---long---float---double
//强制转换 (类型)变量名 高-低
//自动转换 低-高
System.out.println(i);
System.out.println(b);
System.out.println(c);
/*注意点
1.不能对布尔值进行转换
2.不能把对象类型转换成不相干类型
3.高=低 强制转换
4.转换时可能存在内存溢出,或精度问题
*/
System.out.println("=========================================");
System.out.println((int)23.7);//23 精度问题
System.out.println((int)-47.89f);//-47
System.out.println("=========================================");
char d='a';
int e=d+1;
System.out.println(e);
System.out.println((char) e);
}
}
乘法中溢出问题
public class Demo06 {
public static void main(String[] args) {
//操作比较大的时候,注意溢出问题
//JDK7新特性,数字之间可用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480 计算溢出
long total2=money*years;//-1474836480 计算溢出
//默认是int 转换之前已经存在问题
long total3=money*((long)years);
System.out.println(total);
System.out.println(total2);
System.out.println(total3);
}
}
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现