第一阶段 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,问题就解决了
posted @ 2022-05-08 08:30  封闭货车  阅读(27)  评论(0)    收藏  举报