Java基础

注释

public class Hello {
    public static void main(String[] args) {
        // 单行注释 输出一个 Hello 
        System.out.println("Hello");
        
        /* 多行注释 */
        
  	  	/** JavaDoc: 文档注释
   	     * @deprecated Hello (内容)
         * @Author 猪老三 (作者)
         */
    }
}

标识符

首字符: 只能为 大写字母A-Z、小写字母a-z、美元符$、下划线_
组成字符: 可以是 大写字母A-Z、小写字母a-z、美元符$、下划线_ 以及数字0-9的任意组合
也可以是pinyin和汉字,但not good。

关键字

abstract	assert	boolean	break	bytecase	catch	char	class	constcontinue	default	do	double	elseenum	extends	final	finally	floatfor	goto	if	implements	importinstanceof	int	interface	long	nativenew	package	private	protected	publicreturn	strictfp	short	static	superswitch	synchronized	this	throw	throwstransient	try	void	volatile	while

基本数据类型 Primitive type

整数类型

类型介绍

名称字节范围大小
byte1个字节 − 128 -128 128 ~ 127 127 127
short2个字节 − 32768 -32768 32768 ~ 32767 32767 32767
int4个字节 − 2147483648 -2147483648 2147483648 ~ 2147483647 2147483647 2147483647
long8个字节 − 9223372036854775808 -9223372036854775808 9223372036854775808 ~ 9223372036854775807 9223372036854775807 9223372036854775807

补充:进制问题

public static void T1(){
        int a = 10;   // 十进制
        int b = 010;  // 八进制 以 0 开头
        int c = 0b10; // 二进制 以 0b 开头
        int d = 0x10; // 十六进制 以 0x 开头
        System.out.println("a=" + a); // a=10
        System.out.println("b=" + b); // b=8
        System.out.println("c=" + c); // c=2
        System.out.println("d=" + d); // d=16
    }

补充:数字下划线

(JDK7 之后 数字之间可以用下划线分割 对数字不影响)

int money = 10_0000_000;

浮点型

类型介绍

名称字节范围
float4个字节
double8个字节

补充:精度问题

最好完全避免使用浮点数进行比较

public static void T2() {
        float f = 0.1f;    //f=0.1
        double d = 1.0/10; //d=0.1
        //but
        System.out.println(f == d); //false

        float f1 = 123123123123123f;
        float f2 = f1 + 1;
        //but
        System.out.println(f1 == f2); //true
    }

因为浮点数是 有限的、离散的、舍入误差、接近但不等于
所以 银行业务可以使用 BigDecimal(数学工具类)进行比较

字符型

类型介绍

名称字节范围
char2个字节

补充:字符的本质是数字

所有的字符都可以强制转换为数字

public static void T3() {
        char c1 = 'a';
        char c2 = '中';
        System.out.println("c1=" + c1);
        System.out.println("c1=" + (int)c1); //强制转换
        System.out.println("c2=" + c2);
        System.out.println("c2=" + (int)c2);

        char c3 = '\u0061';
        System.out.println("c3=" + c3);
    }

运行结果:
输出

Unicode编码: 记录着世界上所有字符对应的一个数字,范围: [   0   ,   65536   ( 2 16 )   ] [~0~,~65536~(2^{16})~] [ 0 , 65536 (216) ]

boolean类型

类型介绍

名称字节范围值域
boolean1/8个字节 [   t r u e   ,   f a l s e   ] [~true~,~false~] [ true , false ]

补充:1B(字节) = 8b(位)

代码

    public static void T(){
        byte num1 = 1;
        short num2 = 2;
        int num3 = 3;
        long num4 = 4L; //long 类型 数字后面要加 l / L

        float num5 = 50.1f; //float 类型 数字后面要加 f / F
        double num6 = 3.1415926;

        char name1 = 'a';
        char name2 = '猪';
        
        boolean flag = true;
    }

思考

public static void T4(){
        String sa = new String("Hello");
        String sb = new String("Hello");
        System.out.println(sa == sb); //false

        String sc = "Hello";
        String sd = "Hello";
        System.out.println(sc == sd); //true
    }

类型转换

转换顺序

   ~~    byte , short , char -> int -> long -> float -> double   ~  

强制转换自动转换
从高到低从低到高

注意点

  • 不能对boolean值进行转换
  • 不能把对象类型转换为不相干的类型
  • 在把高容量转换为低容量的时候,强制转换
  • 转换的时候可能存在内存溢出或是精度问题

计算过程中的转换

进行可能会溢出的计算时,要先转换数据类型

public static void T5(){
        int money = 1_000_000_000;
        int year = 20;
        long total1 = money * year; //先计算 后转换
        System.out.println("total1=" + total1); //-1474836480
        long total2 = money * ((long)year); //先转换 后计算
        System.out.println("total2=" + total2); //20000000000

    }

运行结果:
在这里插入图片描述

变量

类型

变量分为 实例变量、类变量、局部变量

public class Demo01 {

    //实例变量:从属于对象;如果没有初始化,则为这个类型饿默认值
    String name;
    int age;

    //类变量 static
    static double salary = 2500;

    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化,仅在当前花括号中有效
        int i = 1;
        System.out.println(i);

        //变量类型 变量名字 = new 变量类型()
        Demo01 demo01 = new Demo01();
        System.out.println(demo01.name);
        System.out.println(demo01.age);

        //类变量
        System.out.println(salary);

    }

    //其他方法
    public void eg() {

    }
}

命名规范

  • 所有变量、方法、类名:见名知意 name , age
  • 类成员变量、局部变量、方法名:首字母小写 + 驼峰原则 lastName
  • 常量:大写字母 + 下划线 MAX_VALUE
  • 类名:首字母大写 + 驼峰原则 GoodMan

常量

常量:一个特殊的变量,它的值被设定后,在程序运行中不能再改变了

final double PI= 3.14;

基本运算符

算数运算符

+ + + − - ∗ * / / / % \% % + + ++ ++ − − --
加法减法乘法除法求余自增自减

字符串连接符 +

public static void T6(){
        int a = 1;
        int b = 2;
        System.out.println("" + a + b);
        System.out.println(a + b + "");
    }

运行结果:
在这里插入图片描述

赋值运算符

= = = a + = b a+=b a+=b a − = b a-=b a=b a ∗ = b a*=b a=b a / = b a/=b a/=b
赋值 a = a + b a=a+b a=a+b a = a − b a=a-b a=ab a = a ∗ b a=a*b a=ab a = a / b a=a/b a=a/b

关系运算符

> > > < < < > = >= >= < = <= <= = = == == ! = != != i n s t a n c e o f instanceof instanceof
大于小于大于等于小于等于等于不等于未知

逻辑运算符

& & \&\& &&|| ! ! !
与:有假则假或:有真则真

条件运算符

x   ?   a : b x~?~a : b x ? a:b
如果 x x x为真,执行 a a a,否则执行 b b b

位运算符

& \& &|^~>><<
:两位都为1时,结果才为1:两位都为0时,结果才为0异或:两位相同为0,相异为1取反:0变1,1变0右移:相当于 / 2 /2 /2左移:相当于 ∗ 2 *2 2

包机制

为了更好的组织类,Java提供了包机制,用于区别类的命名空间。包可以理解为电脑中的文件夹
一般利用公司域名倒置作为包名,eg:com.baidu.www

定义和导入

在这里插入图片描述

package com.zlsaxx.base;

import com.zlsaxx.eg.Demo01; //import com.zlsaxx.eg.*;

public class Hello {
    
    public static void main(String[] args) {

	}
}

导入包下所有的类:

import com.zlsaxx.eg.*;

阿里巴巴开发手册

JavaDoc

javadoc命令用于生成自己的API文档。 jdk8帮助文档

参数信息

参数意义
@author作者名
@version版本号
@since需要最早使用的jdk版本
@param参数名
@return返回值情况
@throws抛出异常情况

生成JavaDoc文档

  1. 写好文档注释
  2. 在文件夹中找到对应的java文件
  3. 在该文件夹下打开cmd命令行
  4. 输入javadoc -encoding UTF-8 -charset UTF-8 文件名.java
    (中间的 UTF-8是为了防止中文无法识别生成乱码)
  5. 文件夹下生成 index.html

代码 / 过程 参考

Doc.java代码:

package com.zlsaxx.eg;

/**
 * @author zls
 * @version 1.0
 * @since 1.8
 */
public class Doc {

    String name;

    /**
     * @author zls
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}

cmd界面:
在这里插入图片描述
JavaDoc文档:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值