第一阶段 javaSE java基础语法01
java运行机制
C和C++是编译型语言,java是先将java文件预编译成class文件,即字节码文件,介于java语言和机器语言之间,再将字节码文件放入类加载器中,在字节码校验器中校验是否代码出错,然后通过解释器给操作系统解释为机器语言
IDEA开发工具的安装
IDE是指集成开发环境,IDEA是其中的一种,通过官网下载安装idea,将所有软件等下载到自己创建的程序文件中,防止忘记,配置jdk,写第一个HelloWorld程序,可使用psvm和sout来写主方法和输出语句
java基础语法
注释
书写注释是一个非常好的习惯,很多大公司都要求必须写注释,平时写代码一定要注意规范
IDEA中注释设置在settings-Editer-Java-Comments
java的注释有三种:单行注释,多行注释,文档注释,可在网站搜索有趣的注释
//单行注释
/*多行注释*/
/**
*文档注释:是有功能的
*@Author fengbihuoche
*/
标识符和关键字
关键字是java系统定义的,有一些特殊作用的词,如public,class,static等
java所有的组成部分都需要名字,类名,变量名以及方法名都被成为标识符,标识符注意点:
- 所有的标识符都应该以大写或小写字母,美元符($)或下划线开始,首字符后可以使字母,美元符,下划线或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,显得不专业
数据类型
java是强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
弱类型语言包括python等
java的数据类型分为两大类
- 基本数据类型(8种):分为数值类型和boolean类型,数值类型又分为整数类型,浮点类型和字符类型
- 引用数据类型:类(字符串string是一个类,是引用数据类型),接口,数组
//八大基本数据类型
//数值类型
//整数类型
int num1 = 10;//最常用,占4个字节范围,包装类为intager,用于定义int,确定取值范围
byte num1 = 10;//占1个字节范围,包装类为Byte
short num3 = 10;//占2个字节范围
long num4 = 10L;//占8个字节范围,Long类型要在数字后面加个L,大小写均可,尽量用大写
//浮点类型
float num5 = 3.1F;//占4个字节,Float类型要在数字后面价格F,大小写均可
double num6 = 3.1;//占8个字节
//字符类型
char num7 = "可";//占2个字节,只能是一个字符
//boolean类型
boolean num8 = true;//占一位,只有true和false两个值
什么是字节
位(bit):是计算机内部 数据存储的最小单位,一个二进制数是一位
字节(byte):是计算机 数据处理 的基本单位,习惯用B表示,一个字节等于8位
字符:是指计算机中使用的字母,数字,字和符号
1024B = 1KB
1024KB = 1M
1024M = 1G
数据类型扩展(面试)
整数拓展:
进制:二进制(以0b开头),十进制,八进制(以0开头),十六进制(以0x开头,每一个进制位可写0-9 A-F代表0-16),要求会转换
浮点数拓展:
浮点数代表的数是有限的,离散的,舍入误差,大约,接近但不等于的,最好完全避免使用浮点数进行比较,故银行业务表示数字和金额使用数字工具类BigDecimal
float f = 0.1f; //0.1
double b = 1.0/10; //0.1
System.out.println(f==b); //false
float f1 = 212121212122212f;
float f2 = f1 + 1;
System.out.println(f1==f2); //true
字符拓展:
所有的字符本事还是数字,不同字符是使用Unicode的数字进行编码的
char c1 = 'a';
char c2 = '中';
System.out.println((int)c1);//强制转换,97
System.out.println((int)c2);//强制转换20013
常见转义字符:
\t 制表符 \n 换行 \r 回车 \\ 代表一个反斜线字符 \
\' 代表一个单引号字符
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
字符串扩展:
涉及到面向对象时内存空间的使用
String s1 = new String("hello world");
String s2 = new String("hello world");
System.out.println(s1==s2);//false
String s3 = "hello world";
String s4 = "hello world";
System.out.println(s3==s4);//true
布尔值拓展:
boolean flag = true;
if(flag){} //常见写法
类型转换
由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
类型由低到高为:byte,short,char -> int -> long -> float -> double
运算中,不同类型的数据先转换为同一类型,然后进行运算
- 强制类型转换:将高类型转换为低类型
- 自动类型转换:将低类型转换为高类型
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出(占内存较高的类型转换为占内存较低的类型),或者丢失精度(转换浮点数的时候)
常见问题:操作比较大的数的时候,注意溢出问题,如下:
int money = 1_000_000_000; //JDK新特性,数字之间可以用下划线分割,不影响输出
int years = 20;
int total = money*years; //造成内存溢出
long total2 = money*years; //默认是int,转换之前已经存在问题了
long total3 = money*((long)years); //先把一个数转换为long,问题就解决了

浙公网安备 33010602011771号