java基础01
java基础
编译与解释
java运行机制:编译型与解释型
运行机制
Java文件-->编译器(javac 命令)-->.class文件-->解释器(java 命令)
IDE : 集成开发环境
idea
新建类: java.class
快捷键:psvm
public static void main(String[] args) {
}
sout=System.out.println
java基础语法
1、注释
单行注释 //单行注释
多行注释 /* */
/*
多行注释
*/
文档注释
/**
*/
2、标识符
关键字
image-20210425163350404
java所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
所有标识符都是以字母(A-Z)(a-z)、美元符$、下划线开头.
首字母之后可以是字母(A-Z)(a-z)、美元符$、下划线或数字任何字符组合.
不能使用关键字作为变量名或方法名。
标识符是大小写敏感的
数据类型
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义在使用。
java数据类型分为两大类:
基本类型(primitive type)
数值类型
整数类型
byte占1个字节范围:-128-127
short占2个字节范围:-32768-32767
int 占4个字节范围
long占8个字节范围
浮点类型
float占4个字节
double占8个字节
字符类型
char 占2个字节
boolean类型:占一位 其值只有true和false两个
引用类型(reference type)
类
接口
数组
String 不是关键字,是一个类
//八大类型
//整数类型
byte num1=100;
short num2=1000;
int num3=199023893;
long num4=1293923243243L; //long类型后面要加一个L
//浮点型
float num5=1.2f; //float类型后面要加上f
double num6=2.2432422252;
//字符型
char num8='a';
String num9="SKDHSHFHAJDJAJDHA";
//boolean型
boolean flag=true;
boolean flag2=false;
数据类型的扩展及面试题讲解
整数拓展
public class day01 {
public static void main(String[] args) {
//整数类型拓展 进制: 二进制 十进制 十六进制 八进制
int i1=10;
int i2=010;//八进制以0开头
int i3=0x10;//十六进制以0x开头
int i4=0x11;
System.out.println("==================================================");
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
输出结果:
10
8
16
17
浮点型拓展
System.out.println("==================================================");
//浮点数拓展,银行的业务怎么表示----一般使用BigDecimal类(数学工具类)来表示银行业务
float f1=0.1f;
double f2=0.1;
System.out.println(f1);
System.out.println(f2);
System.out.println(f1==f2);//输出结果为false,f1,f2并不相等。float类型有误差,只是接近不是相等
System.out.println("===============");
float f3=1232432423424f;
float f4= f3 + 1;
System.out.println(f3);
System.out.println(f4);
System.out.println(f3==f4);
输出结果::
0.1
0.1
false
1.2324324E12
1.2324324E12
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);//强制转换
//所有字符的本质还是数字
char c3='\u0061';
System.out.println(c3);//a
//转义字符
// /t 制表位
// /n 换行
System.out.println("hello,\tworld");
System.out.println("=============");
System.out.println("hello,\nworld");
输出结果:
a
97
国
22269
a
hello, world
hello,
world
布尔型
//布尔型拓展
boolean flag=true;
if (flag==true){ }//相当与
if (flag){}
类型转换
由于java是强类型语言,所以要及进行有些运算的时候,需要用到类型转换.
容量低---------------------------------->高
byte,short,char,->int->long->float->double
运算中,不同类型的数据先转化为同一类型,然后进行运算.
public class day02 {
public static void main(String[] args) {
int a=128;
byte b=(byte)a;//内存溢出
输出结果:
128
-128
//强制转换 类型(变量名) 高----》低
//自动转换 类型(变量名) 低----》高
System.out.println(a);
System.out.println(b);
/*1、不能对boolean型值进行转换
* 2、不能把对象类型转换为不相干的类型
* 3、在容量由高到低要强制转换
* 4、转换的时候可能存在内存溢出问题,或精度问题。
* */
System.out.println((int)23.6f);
System.out.println((int)-1232.3);//精度问题
输出结果:
23
-1232
//自动转换
char c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
输出结果:
98
b
//操作数比较大的时候,注意溢出问题。
//jdk7新特性,数字之间可以用下划线分割;
int n=20;
int m=10_0000_0000;
int s=nm;
long s1=nm;//默认的是int,转换之前就已经溢出存在问题了.
long s2=n*((long)m);
System.out.println(n);
System.out.println(m);
System.out.println(s);//内存溢出
System.out.println(s);
输出结果:
20
1000000000
-1474836480
-1474836480
20000000000