JAVA基础

本文详细介绍了Java编程的基础知识,包括注释、标识符、数据类型、变量、运算符、常量、变量命名规范等内容。讲解了基本数据类型的取值范围,以及类型转换的规则,特别强调了在数值运算中精度问题和浮点数的比较。此外,还涵盖了逻辑运算符、位运算和三元运算符的使用。文章最后提到了包机制和JavaDoc的生成,帮助读者理解代码组织和文档编写的重要性。
摘要由CSDN通过智能技术生成

 注释

单行注释

//Hello,World!

多行注释

/*
Hello,World!
Hello,World!
Hello,World!
Hello,World!
*/

文档注释

/**
*@Description HelloWorld
*@Author Lv yipin
*/

标识符

关键字

JAVA关键字

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

  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合

  • 不能使用关键字作为变量名或方法名

  • 标识符是大小写敏感的

  • 合法标识符举例:age、$salary、_value、__1_value

  • 非法标识符举例:123abc、-salary、#abc

  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low

数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

JAVA的数据类型分为两大类

基本类型(primitive type)和引用类型(reference type)

八大基本数据类型的取值范围

ps:在IDEA中可以通过Integer类、Byte类……查看源码直接知道取值范围。

基本数据类型

什么是字节

  • 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,

  • 1B(byte,字节) = 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

  • 1bit表示1位

  • 1Byte表示一个字节1B=8b

  • 1024B=1KB

  • 1024KB=1MB

  • 1024MB=1GB

  • 1024GB=1TB

字符型拓展(多思考)

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展: 进制  二进制0b   十进制 八进制0    十六进制0x
​
        int i = 10;
        int i2 = 010;//八进制0
        int i3 = 0x10;//十六进制0x  0~9 A~F 16
​
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("===================================");
        //======================================================================================
        //浮点数拓展?    银行业务怎么表示?钱
        //BigDecimal    数学工具类
        //======================================================================================
        //float 有限  离散  舍入误差    大约  接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        float f = 0.1f;
        double d = 1.0/10;
​
        System.out.println(f==d);//false
​
        float d1 = 23131312312312313f;
        float d2 = d1 + 1;
​
        System.out.println(d1 == d2);//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);//强制转换
​
        //所有的字符本质还是数字
        //编码 Unicode 表:(97 = a  65 = A) 2字节  0 - 65536     Excel  2   16  = 65536
​
        // U0000  UFFFF
​
        char c3 = '\u0061';
​
        System.out.println(c3);
​
        //转义字符
        // \t   制表符
        // \n   换行
        // ......
​
        System.out.println("Hello\nWorld");
        
        System.out.println("===================================");
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);
​
        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc==sd);
        //对象    从内存分析
        
        
        //布尔值扩展
        boolean flag = true;
​
        if (flag==true){} //新手程序员
        if (flag){} //老手
        //Less is More! 代码要精简易读
    }
}

类型转换

  • 由于JAVA是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

低——————————————————————>高

byte , short , char ——> int ——> long ——> float ——> double

  • 运算中,不同类型的数据先转化位统一类型,然后进行运算

  • 强制类型转换

  • 自动类型转换

public class Demo05 {
    public static void main(String[] args) {
//        int i = 128;
//        byte b = (byte)i; //内存溢出  -128
//
        int i = 128;
        double b = i; //128.0
​
        //强制转换  (类型)变量名  高--低
        //自动转换  低--高
​
        System.out.println(i);
        System.out.println(b);
​
        /*
        注意点
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把高容量转换到低容量的时候,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题!
        */
​
        System.out.println("=====================");
        System.out.println((int)23.7);  //23
        System.out.println((int)-45.89f);   //-45
​
        System.out.println("=====================");
        char c = 'a';
        int d = c+1;
        System.out.println(d);
        System.out.println((char)d);
    }
}

变量

  • 变量是什么:就是可以变化的量!

  • JAVA是一种强类型语言,每个变量都必须声明其类型。

  • JAVA变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

type varName [=value];

//数据类型 变量名 = 值 ;

ps:可以使用逗号隔开来声明多个同类型的变量

  • 注意事项

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型

    • 变量名必须是合法的标识符。

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

变量作用域

  • 类变量

  • 实例变量

  • 局部变量

public class Variable{
    static int allClicks=0; // 类变量  修饰符static
    String str="hello world";   // 实例变量
    
    public void method(){
        int i = 0;  // 局部变量
    }
}

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final 数据类型 常量名 = 值 ;

final double PI = 3.14;

  • 常量名一般用大写字符

public class Demo09 {
​
    //修饰符,不存在先后顺序 staitc final public
    public static final double PI = 3.14;
​
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

变量的命名规范

  • 所有变量、方法、类名:见名知意

  • 类成员变量(除了常量):首字母小写和驼峰原则:monthSalary ps:除了第一个单词以外,后面的单词首字母大写

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runRun()

运算符

  • JAVA语言支持如下运算符:

    • 算术运算符:+ ,- ,* ,/ ,% ,++ ,--

    • 赋值运算符:=

    • 关系运算符:> ,< ,>= ,<= ,== ,! = ,instanceof

    • 逻辑运算符:&& ,|| ,!

    • 位运算符:& ,| ,^ ,~ ,>> ,<< ,>>>

    • 条件运算符:?:

    • 扩展赋值运算符:+= ,-= ,*= ,/=

      运算符优先级

优先级运算符综合性
1()、[]、{}从左向右
2!、+、-、~、++、--从右向左
3*、/、%从左向右
4+、-从左向右
5«、»、>>>从左向右
6<、<=、>、>=、instanceof从左向右
7==、!=从左向右
8&从左向右
9^从左向右
10|从左向右
11&&从左向右
12||从左向右
13? :从右向左
14=、+=、-=、*=、/=、&=、=、^=、~=、«=、»=、>>>=从右向左

a++和++a(a--和--a同理)

package operator;
​
public class Demo04 {
    public static void main(String[] args) {
        //++ --  自增 自减  一元运算符
        int a = 3;
        int b = a++;    //执行完这行代码后,先给b赋值(b=3),再自增(a=4)
        //a = a + 1
        System.out.println(a);  //4
        //a = a + 1
        int c = ++a;//执行完这行代码前,先自增(a=5),再给b赋值(b=5)
​
        System.out.println(a);  //5
        System.out.println(b);  //3
        System.out.println(c);  //5
    }
}

逻辑运算

package operator;
​
public class Demo05 {
    public static void main(String[] args) {
        // 与(and) 或(or)   非(取反)
        boolean a = true;
        boolean b = false;
​
        System.out.println("a && b : " + (a && b));//逻辑运算:两个变量都为真,结果才为true
        System.out.println("a || b : " + (a || b));//逻辑或运算:两个变量有一个为真,结果才为true
        System.out.println("!(a && b) : " + !(a && b));//如果是真,则变为假,如果是假则变为true
​
        //短路运算
        int c = 5;
        boolean d = (c < 4) && (c++ < 4);//c<4直接直接能判断出结果,所以后面的c++没有执行
        System.out.println(d);//false
        System.out.println(c);//5
    }
}

位运算的逻辑运算

package operator;
​
public class Demo06 {
    public static void main(String[] args) {
        /*位运算中的逻辑运算
        A   = 0011 1100
        B   = 0000 1101
​
        A&B = 0000 1100 与运算 A和B每一位比较 有0为0,全1为1
        A|B = 0011 1101 或运算 A和B每一位比较 有1为1,全0为0
        A^B = 0011 0001 异或运算 A和B每一位比较 相同为0,不相同为1
        ~B  = 1111 0010 取反运算 将B所有位取反 1变0 0变1
​
        2*8 = 16   2*2*2*2
        效率及高!!!
        <<    左移    *2
        >>    右移    /2
​
        二进制表示数
        0000 0000       0
        0000 0001       1
        0000 0010       2
        0000 0011       3
        0000 0100       4
        ...   ...       ...
        0000 1000       8
        0001 0000       16
         */
        System.out.println(2<<3);//16   2的2进制编码是0000 0010   左移3位以后0001 0000     所以结果是16
    }
}

三元运算符

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

拓展运算符

package operator;
​
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);
​
        //字符串连接符 + ,String
        System.out.println(a+b+"");//30     如果字符串在后面运算依然会进行
        System.out.println(""+a+b);//1020   如果字符串在前面会将后面的拼接
​
    }
} 

包机制

  • 为了更好地组织类,JAVA提供了包机制,用于区别类名的命名空间。

  • 包语句的语法格式为:

package pkg1[. pkg2[. pkg3...]]

  • 一般公利用公司域名倒置作为包名

  • 为了能够使用某一个包的成员,我们需要在JAVA程序包中明确导入该包。使用“import”语句可完成此功能

import package[. package2....]. (classname|*);

JavaDoc生成文档

  • javadoc命令是用来生成自己API文档的

  • 参数信息

    • @author 作者名

    • @version 版本号

    • @since 指明需要最早使用的jdk版本

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

package com.lv.base;
​
/**
 * @author Lv
 * @version 1.0
 * @since 1.8
 */
public class Doc {
​
    String name;
​
    /**
     * @author Lv
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}

IDEA生成javadoc文档来自教程手把手教你使用 idea 生成漂亮的 javadoc 文档_读万卷书,行万里路-CSDN博客_使用idea生成javadoc文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值