JAVA基础入门笔记---第一篇

本文详细介绍了JAVA的基础知识,包括注释的三种类型、标识符的规则、数据类型的分类及使用注意事项、类型转换的规则、变量的分类和作用、常量的声明、运算符的种类及其应用。内容涵盖基本类型、引用类型、变量声明、运算符优先级等方面,适合初学者入门学习。
摘要由CSDN通过智能技术生成

JAVA基础入门

1.注释

  • 单行注释:以 // 开头,后面跟的语句即为注释句,但是一次只能注释一行。

    例如:

    //这是单行注释
    //只能注释这一行
    
  • 多行注释:以 / 开头,以 / 结尾,中间插入的语句即为注释句,可以换行多行注释。

    例如:

    /*这是多行注释,
    
      这还是多行注释!
    
     */
    
  • 文档注释:以 /**** 开头,以 / 结尾,中间可写入注释语句。和多行注释有些区别。*

    例如:

    /**这是文档注释
    
     *@作者Sue
    
     *@日期22/08/30 
    
     */
    

2.标识符

标识符的几个注意点:

  • 所有的标识符都是以字母,美元符号或者下划线开头
  • 首字符之后可以是任何字符组合
  • 不能使用关键字(例如class、static…)作为变量名或方法名!
  • 标识符是大小写敏感
  • 可以使用中文命名,但是一般不建议使用

3.数据类型

①基本类型:

  • 整数类型

    int num1 = 10;  //最常用
    int num11 = 010;  //八进制,输出结果将自动转换成十进制
    int num12 = 0x11;  //十六进制,输出结果将自动转换成十进制
    byte num2 = 20;
    short num3 = 30;
    long num4 = 30L;  //注意long类型要在数字后面加个L,便于与short类型区分
    
  • 浮点类型

    float num5 = 50.1F;  //float类型要在数字后面加个F,便于与double类型区分
    double num6 = 3.141592653589;
    /*
     浮点数能表达的长度是有限的,无法精确表达时会采用舍入误差来表示。
     最好完全避免使用浮点数进行比较!!!容易出错
     银行业务通常用BigDecimal(数字工具类)来进行表示
     */
    
  • 字符类型

    char name = 'A';
    //注意字符只能是单个,String才是字符串;String不是关键字,而是类
    System.out.println((int)name);   //输出结果是65!
    /*
     所有的字符本质还是数字,可以对字符类型进行强制转换(成整型)
     char类型会涉及到Unicode编码问题,占2个字节;Unicode表中存在很多数据对应的编码,包括中文。
     */
    
    /*拓展---转义字符:
        \t  制表符(四个空格)
        \n  换行
        ...
     */
    
  • 布尔类型

    boolean flag1 = true;
    boolean flag2 = false;
    //结果只存在对和错
    /*
     
     */
    

②引用类型:

  • 接口
  • 数组

4.类型转换

  • 强制类型转换

    // (类型)变量名    适用于:高→低
    int i = 128;
    byte b = (byte)i;   
    /*
    byte容量比int低,需要强制转换!
    注意这里128已经超出了byte的范围,内存溢出,导致输出结果错误
    把i改成127即可。
    */
    
  • 自动类型转换

    // 适用于:低→高
    int i = 128;
    double b = i;   //这时候会直接把i转换成double类型,输出为128.0
    
  • 注意点

    不能对布尔值进行转换

    不能把对象类型转换为不相干的类型

    ③在把高容量转到低容量时,强制转换

    ④转换的时候可能存在内存溢出精度问题!(内存溢出:强制转换例子中有提及到;精度问题:比如把float型或double型转换成int型,就会出现小数点被省略的问题,导致不精确。)

    ⑤操作比较大的数的时候,为了避免结果溢出问题,可以提前对数值进行强制转换。

    int money = 10_0000_0000;
    int year = 20;
    int total = money*year;  //这时候结果超出20亿,会溢出
    long total2 = ((long)year)*money;  //先把一个数转换为long
    

5.变量

  • 类变量:写在类里面,方法外面。需要加个static

  • 实例变量:写在类里面,方法外面。与类变量区别:没有static

  • 局部变量:写在方法里面,必须声明和初始化。

    public class Day5 {
        
    	//类变量:写在类里面,要加static
        static double salary = 21000;
        
        //实例变量:从属于对象;如果不自行初始化,输出这个类型的默认值 0或0.0
        //布尔值:默认是false
        //除了基本类型,其余的默认值都是null
        String name;
        int age;
        
        //main方法
        public static void main(String[] args) {
    
            //局部变量:必须声明和初始化值
            int i = 10;
            System.out.println(i);
    
            //变量类型  变量名 = new Day5();在方法里不能直接被调用;
            Day5 day5 = new Day5();
            System.out.println(day5.age);
            System.out.println(day5.name);
            
            //类变量 static,在方法里可以被直接调用。
            System.out.println(salary);
    
        }
    }
    

6.常量

public class Day51 {

    /*
     static和final是修饰符,不存在先后顺序,static可以放在final前面/后面;
     final表示是常量;
     static final(顺序可颠倒) 变量类型 常量名 = 值; 常量名一般用大写字母。
     */
    static final double PI = 3.14;

    public static void main(String[] args) {
        System.out.println(PI);
    }
}

7.运算符

  • 算术运算符:+、-、*、/、%、++、–
  • 赋值运算符:=
  • 关系运算符:>、<、>=、<=、==、!=、instanceof
  • 逻辑运算符:&&、||、!
  • 位运算符:&、|、^、~、>>、<<、>>> (了解!!!)
  • 条件运算符:?、:
  • 扩展赋值运算符:+=、-=、*=、/=
public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //Ctrl+D : 复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);   //注意这里除的结果不是整数,会直接根据类型把结果变整数,输出0;
        System.out.println(a/(double)b);   //把b变成double型即可输出正确结果!
    }
}
public class Demo02 {
    public static void main(String[] args) {
        long a = 123123123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;

        //如果有Long型,结果一定是Long型;如果没有Long型,则结果都为Int型
        System.out.println(a+b+c+d);   //结果为Long
        System.out.println(b+c+d);       //结果为Int
        System.out.println(c+d);           //结果为Int
    }
}
//结果按高容量的类型转换。
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果是布尔型: 正确、错误

        int a = 10;
        int b = 20;

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}
public class Demo04 {
    public static void main(String[] args) {
        //++ -- 自增,自减   一元运算符
        int a = 3;
        int b = a++;       //执行完这行代码后,先把a=3赋值给b,a再自增1。
        System.out.println(a);
        int c = ++a;       //执行这行代码前,a先自增1,再把a自增后的值赋值给b。
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}
public class Demo05 {
    public static void main(String[] args) {
        //借助Math工具类来运算
        double pow = Math.pow(2,3);
        System.out.println(pow);     //2*2*2=8
        double pow1 = Math.pow(3,2);
        System.out.println(pow1);     //3*3=9
    }
}
//逻辑运算符
public class Demo06 {
    public static void main(String[] args) {
        //与(&&)、或(||)、非(!)
        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));  //如果是真,则变为假,反之。

    }
}
  /*
  		位运算符(二进制运算)
        A = 0011 1100
        B = 0000 1101
        
        A&B = 0000 1100  只有1和1时为1
        A/B = 0011 1101  只有0和0时为0
        A^B = 0011 0001  相同为0,不同为1
        ~B = 1111 0010    取反
        
        扩展:
        如何让计算机快速计算2*8  
        口算很快知道为16,但是计算机不知道。
        要转化成2*2*2*2    用位运算,效率极高!
        System.out.println(2<<3);  即可快速得出结果
        <<左移运算符,每左移一次,结果*2
        >>右移运算符,每右移一次,结果/2
   */
public class Demo08 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        //字符串连接符 + ,加号前面碰到字符串,会把后面的值变成String类型
        System.out.println(""+a+b);    //结果为1020
        System.out.println(a+b+"");    //字符串在加号后面,不影响前面计算,结果为30
        System.out.println(""+(a+b));  //结果为30
    }
}
//三元运算符
public class Demo09 {
    public static void main(String[] args) {
        // x ? y : z
        //如果x==true,则结果为y,否则结果为z

        int score = 80;
        String type = score < 60 ? "不及格":"及格";  //必须掌握,定义的同时直接进行判断
        System.out.println(type);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值