byf123

导航

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=n
m;//默认的是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

posted on 2021-04-26 16:08  byf123  阅读(74)  评论(0编辑  收藏  举报