首页 > 编程语言 >java基础-01

java基础-01

时间:2022-12-03 16:56:24浏览次数:45  
标签:01 java int double 基础 System println public out

一、Hello,world

首先创建java文件,文件名字为 Hello.java,代码如下。然后使用javac编译 Hello.java 。当编译完成之后,生成一个Hello.class 。这个时候 java Hello.java

public class Hello{
	public static void main (String[] args){
		System.out.print("Hello,World!");
	}
}

image-20221121下午115339459

二、java运行机制

解释型 编译型
一边执行编译 c c++ 这种需要将整个代码运行前后编译一遍的语言

image-20221122上午124221584

java属于先编译,后解释

三、java基础语法

新建空 项目image-20221122上午12348036

新建空模块image-20221122上午12837248

新建 文件--项目结构--SDK选择和jdk版本相同的,语言级别选择8

新建类image-20221122上午13745848

运行image-20221122上午13947062

1)注释

修改注释配色方案image-20221122上午14532646

// 单行注释

/**javadoc:文档注释 */

/* 多行注释*/ image-20221122上午15049726

标识符

1、所有的标识符都应该以字母(A-Z 或者 a-z),美元符 $ ,或者下划线 (_)开始

2、不可以使用关键字作为变量名

3、标识符是大小写敏感的

image-20221122上午105632492

数据类型

弱类型语言 强类型语言
弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换 vb 、PHP、javascript 一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了 Java、.net 、Python、C++

除了基础的8个类型,剩下的都是引用类型 例如string

整数 浮点数 字符/字符串 布尔
int 4字节 float 4字节 char 2字节 boolean 1位
byte 1字节 double 8字节
shrot 2字节
long 8字节

image-20221122下午124547279

类型扩展

int

整数拓展  进制       二进制0b开头     十进制     八进制0开头   十六进制0x开头
public class Demo04 {
    public static void main(String[] args) {
        //整数拓展  进制       二进制0b开头     十进制     八进制0开头   十六进制0x开头
        //八进制逢八进一
        //
        int i = 10;
        int ia = 010;    //八进一
        int ib = 0x10;   //十六进一
        System.out.println(i);
        System.out.println(ia);
        System.out.println(ib);
    }

}

flort对比

        //浮点数
        //最好完全使用浮点数进行比较
        //最好完全使用浮点数进行比较
        float a = 0.1f;
        double b = 0.1;
        System.out.println(a==b);    //对比输出fales
        //===============================================

        //===============================================
        float c = 123123123;
        float d = 1 + c;
        System.out.println(c==d);    //对比输出ture
     }

}

char转换数字

        //===============================================
        //char转换数字
        //===============================================
        char c1 = 'a';
        char c2 = 'b';
        System.out.println(c1);
        System.out.println((int)c1);
        System.out.println((int)c2);
        char c3 = '\u0061';      
        System.out.println(c3);
     }

}

类型转换

低位转高位自动转换

高位转地位强制转换

image-20221122下午25746364

image-20221122下午34454983

浮点数和复数转化的精度问题

溢出问题

public class Demo06 {
    public static void main(String[] args) {
        int money = 10_0000_0000;
        int year = 20;
        int total = money*year;
        System.out.println(total);  //计算的时候溢出了
        long total1 = money*year;
        System.out.println(total1); //我们发现 使用long类型计算的时候,也是整数溢出
        System.out.println("=============================================");
        long total3 = money*((long)year);   //再计算前对year进行转化则不会溢出
        System.out.println(total3);
    }
}

image-20221122下午54833936

变量

1、变量必须声明类型 类型可以是基本类型,也可以是引用类型

2、变量名必须是合法的标识符

3、变量声明是一条完整的语句,因此每一个生命都必须以分号结束

1)、类变量 :从属于类,随着类一起生成和消失

2)、实例变量 :从属于对象,数值型变量的默认值是0(或者0.0),布尔型变量的默认值是false,引用类型变量的默认值是null

3)、局部变量 :两个{}之间的,使用之前必须声明和初始化值

常量

初始化之后不能改变的值,一个特殊的变量值被设置之后不允许改变,修饰符不区分先后顺序 public

final 常量名=值;
final double PI=3.14

运算符 +

正常使用a/b的时候因为两个都是int型,所以得出的结果0.5也为int型结果被舍去为0,所以这里我们应该使用double进行强转才可以输出0.5

package operator;

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }
}

image-20221122下午104414736

相加的时候自动由低位向高位转换

有long向long转化

有double向double转化

int不能转换成double

public class Demo2{
  public static void main{
    long a = 123123123123L;
    int b = 123;
    short c = 10;
    byte d = 8;
    System.out.println(a+b+c+d);  //long
    System.out.println(b+c+d);  //int
    System.out.println((double)c+d); //double
    System.out.println(c+d); //int
    System.out.println((double)c +d); //double
  }
}

运算符boolen

public class Demo03 {
    public static void main(String[] args) {
        //boolen
        int a = 1;
        int b = 2 ;
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);


    }
}
false
true
false
true

自增

a++先赋值再自增 a = a+1

++a先自增再赋值

package operator;

public class Demo04 {
    public static void main(String[] args) {
        // ++ -- 自增 自减
    int a =3;
    int b = a++;  //执行完这行代码后,先给b赋值,再自增
    int c = ++a;  //执行完这行代码前,先自增,再给b赋值
        System.out.println(a);
        // a = a+1
        System.out.println(b);
        System.out.println(c);
        double pow = Math.pow(3, 2);    //很多运算我们会使工具类来做
        System.out.println(pow);


    }
}

5
3
5
9.0

逻辑运算符 与(and) 或 (or) 非 (取反)

public class Demo05 {
    public static void main(String[] args) {
        //逻辑运算 与(and) 或 (or) 非 (取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a&&b));  //两个有一个为假则为假
        System.out.println("a || b :"+(a||b)); //两个又一个为真则废真
        System.out.println("! (a && b) "+ !(a&&b)); // 如果是真变为假 如果是假变为真

        //短路运算  &&的时候如果遇到fales则不执行&&后面的。

        int c = 5;                      //此时c = 5
        boolean e = ((c<4)&&(c++<4));   //首先判断第一个条件c>4为fales,这时候将不会执行后面的先赋值再自增
        System.out.println(e);          //如果程序执行到了c++<4 ,c将会变为6,而且将输出fales
        System.out.println(c);


    }
}


a && b:false
a || b :true
! (a && b) true
false
5

位运算

//二进制逢二进一 ,是一种加快运算方法的运算,只需要记住左移右移
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        ---------------------------------------
        A&B 0000 1100   如果上下都为1的话才是1
        A|B 0011 1101   如果都是0则为0 如果有一个1则为1
        A|^B0011 0001   相同为0 不同为1
        ~B  1111 0010   与B完全相反
         << >>          左移右移动
         << *2
         >> /2
         效率及高
        */
        System.out.println(2<<3);       //2*2*2*2
    }
}

16

条件运算符 字符串连接

public class Demo07 {
    public static void main(String[] args) {
        //条件运算符
        int a = 10;
        int b = 20;
        a+=b;       // a = a+b
        a-=b;       // a = a-b
        System.out.println(a);
        System.out.println(b);

        //字符串连接符    如果+左边有string类型,则将其他操作都转化程string类型
        System.out.println(""+a+b);      //首先当成了字符串判断所以int转化成了string进行相加
        System.out.println(a+b+"");      //因为string在右侧先进行a+b运算所以输出的结果为int相加

    }
}

10
20
1020
30

三元运算符

public class Demo08 {
    public static void main(String[] args) {
        //x?y:z   如果x==true,则结果为y,否则结果为z
        int score = 80 ;
        String type = score<50? "及格":"不及格";
        System.out.println(type);

    }
}

不及格

标签:01,java,int,double,基础,System,println,public,out
From: https://www.cnblogs.com/uchihaup/p/16920507.html

相关文章