Java程序运行机制
-
编译型(complie)
(全部JAVA代码->计算机可以执行的代码)
#操作系统 C/C++
-
解释型
(实时编译解释)
#网页 Java
Java文件经过JAVA编译器编译成.class文件,接着将class文件放入虚拟机JVM中的类装载器中,通过校验器确定代码是否正确,最后到操作系统时才通过解释器运行代码。
IDEA一些快捷编辑语句
-
psvm
-
sout
常用快捷键
-
crtl+shift+enter 当前行任何地方可以快速在末尾生成分号
-
ctrl+] 或 ctrl+[ 大括号匹配,你可以将光标定位在某个大括号一边,定位另一边
-
crtl+点击 直接查看包装类的源码。
JAVA基础语法
1.注释
创建空项目后,点击文件按钮->选择新模块->选择JAVA模块
完成后,再次点击文件按钮->选择项目结构->选择项目设置sdk(注意两个版本号须相同)
- 单行注释
//单行注释
//输出Hello World
- 多行注释
/*多行注释多行注释多行注释多行注释*/
- 文档注释 JavaDoc
/*** @Description HelloWorld* @Author zhangchuhui*/
- 有趣的代码注释
有趣的代码注释
/*** * .,:,,, .::,,,::. * .::::,,;;, .,;;:,,....:i: * :i,.::::,;i:. ....,,:::::::::,.... .;i:,. ......;i. * :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i. * ;;..,::::;;;;ri,,,. ..,,:;s1s1ssrr;,.;r, * :;. ,::;ii;:, . ................... .;iirri;;;,,;i, * ,i. .;ri:. ... ............................ .,,:;:,,,;i: * :s,.;r:... ....................................... .::;::s; * ,1r::. .............,,,.,,:,,........................,;iir; * ,s;........... ..::.,;:,,. ...............,;1s * :i,..,. .,:,,::,. .......... .......;1, * ir,....:rrssr;:, ,,.,::. .r5S9989398G95hr;. ....,.:s, * ;r,..,s9855513XHAG3i .,,,,,,,. ,S931,.,,.;s;s&BHHA8s.,..,..:r: * :r;..rGGh, :SAG;;G@BS:.,,,,,,,,,.r83: hHH1sXMBHHHM3..,,,,.ir. * ,si,.1GS, sBMAAX&MBMB5,,,,,,:,,.:&8 3@HXHBMBHBBH#X,.,,,,,,rr * ;1:,,SH: .A@&&B#&8H#BS,,,,,,,,,.,5XS, 3@MHABM&59M#As..,,,,:,is, * .rr,,,;9&1 hBHHBB&8AMGr,,,,,,,,,,,:h&&9s; r9&BMHBHMB9: . .,,,,;ri. * :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr. ...,:rs. * ;s. .:sS8G8GG889hi. ....,,:;:,.:irssrriii:,. ...,,i1, * ;1, ..,....,,isssi;, .,,. ....,.i1, * ;h: i9HHBMBBHAX9: . ...,,,rs, * ,1i.. :A#MBBBBMHB##s ....,,,;si. * .r1,.. ,..;3BMBBBHBB#Bh. .. ....,,,,,i1; * :h;.. .,..;,1XBMMMMBXs,.,, .. :: ,. ....,,,,,,ss. * ih: .. .;;;, ;;:s58A3i,.. ,. ,.:,,. ...,,,,,:,s1, * .s1,.... .,;sh, ,iSAXs;. ,. ,,.i85 ...,,,,,,:i1; * .rh: ... rXG9XBBM#M#MHAX3hss13&&HHXr .....,,,,,,,ih; * .s5: ..... i598X&&A&AAAAAA&XG851r: ........,,,,:,,sh; * . ihr, ... . .. ........,,,,,;11:. * ,s1i. ... ..,,,..,,,.,,.,,.,.. ........,,.,,.;s5i. * .:s1r,...................... ..............;shs, * . .:shr:. .... ..............,ishs. * .,issr;,... ...........................,is1s;. * .,is1si;:,....................,:;ir1sr;, * ..:isssssrrii;::::::;;iirsssssr;:.. * .,::iiirsssssssssrri;;:. */
2.标识符
-
关键字
-
注意点
- 所有标识符都应该以字母(A-Z/a-z),美元符号($)、或者下划线(_)开始。
- 首字母之后字母(A-Z/a-z),美元符号($)、或者下划线(_)或数字的任意字符组合。
- 不能用关键字命名。
- 标识符是大小写敏感的。
3.数据类型
- 强类型语言 (要求十分严格)
变量的使用要严格规定,所有变量都必须先定义后才能使用。
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型 primitive type
- 整数类型 byte、short、int、long
- 浮点类型 float(四个字节)、double(八个字节)
- 字符串类型 char(两个字节)
- 布尔类型 (一个字节)true 和false
//整数 int num0=10; //最常用 byte num1=10; short num2=30; long num3=30L; //Long类型要在数字后面加L//浮点数 float num4=50.1F; double num5=3.1415926;//单个字符 char name='A'; //字符串 String name1='zhanghui'; //布尔值 boolean flag=true;
-
引用类型 reference type
- 类
- 接口
- 数组
-
字节
- 位bit :计算机内部数据储存的最小单位 10111100是一个8位二进制数
- 字节byte :计算机处理数据的基本单位,习惯上用B表示
- 1 B = 8 bit
- 字符:是计算机中使用的字母、数字、字和符号。
常见面试问题
// 整数拓展 进制问题 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010; //八进制
int i3=0x10; //十六进制//---------------------------------------------------------
//浮点数拓展 银行业务表示?
//BigDecimal 数学工具类
//---------------------------------------------------------//float 表现有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较//---------------------------------------------------------
//字符拓展
//---------------------------------------------------------char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换//所有的字符本质还是数字
//编码问题 Unicode 2个字节 0~65536 Excel 2的16次方 = 65536//U0000 UFFFF
char c3='\u0061'; //Unicode编码
System.out.println(c3);//转义字符
// \t 制表符 \n 换行
//输出结果
a
97
中
20013
a//对象 从内存分析//布尔值扩展
//boolean flag=true;
//if(flag){} 等同于 if(flag==true){}
4.类型转换
低--------------------------------> 高
byte,short,char->int->long->float->double
int i=128;
byte b=(byte)i; //内存溢出 //强制转换 (类型)变量名 高-->低
//自动转换 低-->高System.out.println(i);
System.out.println(b);//运行结果
128
-128;//----------------------------------------------------------
/*注意点
1.不能对boolean进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出或者精度问题
*/
//数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total); //输出-1474836480 内存溢出//解决方案
long total1=(long)money*years;
System.out.println(total1); //正常输出 20000000000