Java基础内容以及相关内容拓展

本文详细介绍了Java的基础内容,包括Java的三大版本、JDK、JRE和JVM的关系,以及Java的安装过程。进一步讲解了Java的基础语法,如注释、标识符、关键字、数据类型、类型转换、变量与常量、运算符等,并探讨了包机制和JavaDoc的使用。内容涵盖从基础到进阶,适合Java初学者学习。
摘要由CSDN通过智能技术生成

Java基础

java三大基础

  • JavaSE:标准版(主要用于桌面程序、控制台的开发…)*
  • JavaME:嵌入式开发(手机程序、小家电…)
  • JavaEE:E企业级开发(web端、服务器开发…)

JDK、JRE、JVM

JDK:Java Development Kit (Java开发者工具包,JDK包含了JRE)

JRE:Java Runtime Environment

JVM:JAVA Virtual Machine(在所有操作系统上模拟了cpu,单独处理java相关的东西)


1bit表示1位

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

1024B=1KB

1024KB=1M

1024M=1G

Java安装

安装JDK

  1. 百度搜索JDK8,找到下载地址
  2. 同意协议
  3. 下载电脑对应版本
  4. 双击安装JDK
  5. 记住安装路径
  6. 配置环境变量
    • 搜索“高级系统设置”
    • 环境变量–>系统变量–>JAVA_HOME
    • 配置path变量,双击打开
    • 新建“%JAVA_HOME%\bin",“%JAVA_HOME%\jre\bin”
    • 确定,完成

Java-基础语法

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

Java-注释、标识符、关键字

注释

单行注释://

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

多行注释:/*

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello,World!");
        /*
        我是多行注释
        我是多行注释

         */
    }
}

文档注释:/**

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello,World!");
        /**
         * 文档注释
         * 文档注释
         */

    }
}

标识符、关键字

注意点:

  1. 所有的标识符都应该以字母A-Z或者a-z,$,或者下划线_开始
  2. 首字符之后可以是字母A-Z或a-z,$,下划线_或者数字的任何字符组合
  3. 不能使用关键字作为变量名或者方法名
  4. 标识符是大小写敏感的
  5. 可以使用中文名,但不建议,拼音也不建议
  6. 合法标识符举例:age、$salary、_value、__1_value

Java-数据类型

Java是一种强类型语言,要求变量的使用严格符合规定,所有变量都必须先定义后使用,安全性高,速度相对较慢

弱类型语言

基本分类

Java的数据类型分为两大类:

  • 基本类型(primitive type)

    • byte
    • short:16位整数,有效数值范围是-32768~32767
    • int:有符号整数,位数由操作系统决定,通常是4个字节,即32位
    • long:长整数,有效范围-2147483648~2147483647
    • float:浮点数,位数是32位,用于表示小数,有效范围1.175494351e-38~3.402823466e+38
    • double:双精度浮点数,位数8*8=64位,用于表示更大位数的小数,有效范围是1.7e-308~1.7e+308
    • char:表示8位字符
    • boolean,只有两个值,是/非
  • 引用类型(reference type)

拓展内容

整数拓展:进制,二进制0b、八进制0、十进制、十六进制0x

public class Demo3 {
 public static void main(String[] args) {
     //整数拓展,进制,二进制0b、八进制0、十进制、十六进制0x
      int i = 10;
      int i1 = 0b10;
      int i2 = 010;
      int i3 = 0x10;
     System.out.println(i);
     System.out.println(i1);
     System.out.println(i2);
     System.out.println(i3);
 }
}

输出:102816

浮点数拓展:float,有限、离散、舍入误差、大约、接近但不等于

public class Demo3 {
 public static void main(String[] args) {
     //浮点数拓展
     float f = 0.1f; //0.1
     double d = 1.0/10; //0.1
     //判断f和d是否相等
     System.out.println(f==d); //false

     float d1 = 2322134556677f;
     float d2 = d1 + 1;
     //判断d1和d2是否相等
     System.out.println(d1==d2); //true
 }
}

输出:falsetrue

字符拓展:强制转化

public class Demo3 {
 public static void main(String[] args) {
     //字符拓展,强制转化
     char c1 = 'A';
     char c2 ='中';

     System.out.println(c1);
     System.out.println((int)c1);//强制转换
     System.out.println(c2);
     System.out.println((int)c2);//强制转换
     //所有字符本质还是数字
     //Unicode编码表,(a=97,A=65) 0-65536
 }
}

转义字符,\t 制表符、\n 换行

public class Demo3 {
 public static void main(String[] args) {
     //转义字符
     System.out.println("Hello\tWorld!");
     System.out.println("Hello\nWorld!");
 }
}

输出:
Hello	World!
Hello
World!

在这里插入图片描述

布尔值拓展

public class Demo3 {
 public static void main(String[] args) {
     //布尔值扩展
     boolean flag = true;

     if (true){}
     if (flag){}
          if (flag==true){}
     if(2>1){}

  1.写死
    2.布尔类型的变量
      3.关系运算符的结果
}
}
  • 引用类型(reference type)

Java-类型转换

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

在运算时,不同类型的数据先转化为同一类型,然后进行运算

强制类型转换:由低到高转换

自动类型转换:由高到低转换

public class Demo4 {
    public static void main(String[] args) {
        //强制转换,由高到低转换
        int c1 = 10;
        byte c2 = (byte)c1;

        System.out.println(c1);
        System.out.println(c2);
        //自动转换,由低到高转换
        int c3 =128;
        double c4 = c3;

        System.out.println(c3);
        System.out.println(c4);
    }
}

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换为低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题

Java-变量、常量

变量

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

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类变量:首字母小写和驼峰原则:mouthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man、GoodMan
  • 方法名:首字母小写和驼峰原则:run()、runRun()
public class Variable{
    static int allClicks=0;      //类变量
    String str="Hello world";    //实例变量
    
    public void method(){
        int i = 0;               //局部变量
    }
}

类变量

实例变量、局部变量

实例变量:从属于对象;如果不自行初始化,这个类型的默认值为0,0.0,布尔值默认返回false;除了基本类型,其余的默认值都是null

public class Demo变量 {
    //类变量,关键字static
    static double salary = 2500;

    //main方法

    //实例变量:从属于对象;如果不自行初始化,这个类型的默认值为0,0.0,布尔值默认返回false;除了基本类型,其余的默认值都是null
    String name;
    int age;
    public static void main(String[] args){
        //局部变量,必须声明和初始化值
        int a = 10;
        System.out.println(a);

        //变量类型 变量名字 = new Demo变量()
        Demo变量 demo变量 = new Demo变量();
        System.out.println(demo变量.age);

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

    }
    //其他方法
    public void add(){

    }
}

常量

常量:初始化后不能再改变值,不会变动的值。

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

关键词:final

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

常量名一般使用大写字符

public class Demo常量 {
    //static、final属于修饰符,不区分前后
    //常量一般使用大写来表示
    static final double PI = 3.14;
    public static void main(String[] args) {
        System.out.println(PI);

    }
}

Java-运算符(operator)

  • 算数运算符:+,-,*,/,%(模运算,取余),++(自增),–(自减)
  • 赋值运算符:=
  • 关系运算符:<,>,>=,<=,==,!=instanceof
  • 逻辑运算符:&&,||,!(与,或,非)
  • 位运算符:&,|,^,~,>>,<<,>>>(了解)
  • 条件运算符:?
  • 扩展赋值运算符:+=,-=,*=,/=

算术运算符

" + - * / "

加减乘除

package _3_运算符;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLPortType;

public class _1_算数运算符 {
    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);   #int属于整数类型,强制转换小数类型
    }
}
输出:
30
-10
200
0.5
package _3_运算符;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLPortType;

public class _1_算数运算符 {
    public static void main(String[] args) {

        long c = 1223447778L;
        double d = 34566;
        short e = 32767;
        int f = 3457776;
        byte g = 87;

        System.out.println(c+d+e+f+g);//long
        System.out.println(d+e+f+g);//double
        System.out.println(e+f+g);//short
        System.out.println(f+g);//int
    }
}
输出:
1.226972974E9
3525196.0
3490630
3457863

" % "

取余

package _3_运算符;

public class _2_关系运算符 {
    public static void main(String[] args) {
        int h = 10;
        int i = 20;
        int g = 33;

        System.out.println(g%h);//取余,g / h = 3...3
    }
}
输出:
    3

" ++ "

自增

package _3_运算符;

public class _2_关系运算符 {
    public static void main(String[] args) {
        //自增,num=num+1
        int num1 = 3;
        System.out.println(num1);//3
        //先赋值
        int num2 = num1++;//3
        System.out.println(num2);
        //num1=num1+1,再执行+1

        //num1=num1+1,先执行+1
        //再赋值
        int num3 = ++num1;//5
        System.out.println(num3);
    }
}
输出:
    3
    3
    5

" – "

自减

package _3_运算符;

public class _2_关系运算符 {
    public static void main(String[] args) {
       //自减,n=n-1
        int n = 5;
        System.out.println(n);//5

        //先赋值,n1=5
        int n1 = n--;
        System.out.println(n1);//5
        //再执行n1=n-1

        //先执行,n2=n-1
        //再赋值
        int n2 = --n;
        System.out.println(n2);//3
}
输出:
    5
    5
    3

关系运算符

" >,<,>=,<=,==,!= "

package _3_运算符;

public class _2_关系运算符 {
    public static void main(String[] args) {
        //返回结果:布尔值类型 false/true
        int a = 10;
        int b = 20;

        System.out.println(a>b);    //false
        System.out.println(a<b);    //true
        System.out.println(a>=b);   //false
        System.out.println(a<=b);   //true
        System.out.println(a==b);   //false
        System.out.println(a!=b);   //true
    }
}

逻辑运算符

“ && || ! ”

&& 与(and)、|| 或(or)、! 非(取反)

package _3_运算符;

public class _3_逻辑运算符 {
    public static void main(String[] args) {
        //&&与,||或,!非
        boolean a = false;
        boolean b = true;

        System.out.println("a && b:" + (a && b));
        //false,两个变量都为真,结果才为true
        System.out.println("a || b:" + (a || b));
        //true,两个变量有一个为真,结果为true
        System.out.println("!(a && b):" + !(a && b));
        //true,a&&b的结果为false,那非false,就是true
    }
}
输出:
    false
    true
    true

短路运算

package _3_运算符;

public class _3_逻辑运算符 {
    public static void main(String[] args) {

        //短路运算
        //即当执行至第一个变量的值为false时,则不再往后执行,直接返回false
        int c = 5;
        boolean d = (c<2)&&(c++<2);

        System.out.println(d);//false
        System.out.println(c);//5

    }
}
输出:
    false
    5

位运算符

“ &,|,^,~ ”

        A = 0100 0111
        B = 1100 0110

        A&B = 0100 0110 
        //A与B,位运算,如果对应位都为1,则为1,否则为0
        A|B = 1100 0111
        //A或B,如果对应位都为0,则为0,否则为1
        A^B = 1011 1110
        //取反,对应位相同则为0,否则为1
         ~B = 0011 1001
        //取反,B对应位为1,则取反值0,对应位为0,则取反值1
         ~A = 1011 1000

" <<,>> "

**左移:**num*2

右移:num/2

位运算:跟底层二进制打交道,效率高

		0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8
        0001 0000   16
        << 左移,相当于num*2
        >> 右移,相当于num/2
            
        //2*8怎么计算会比较快
        2<<3;//2左移3位

条件运算符

" += 、-= "

public class _7_关系运算符 {
    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);

    }
}
输出:
    30
    -10

" + 字符串连接符"

public class _7_关系运算符 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        //字符串连接符 + , String
        System.out.println(a+b+" ");    //先进行a+b的运算,在进行字符串转换
        System.out.println(""+a+b);     //直接转换字符串,进行拼接
    }
}
输出:
    30
    1020

三元运算符

" ? : "

public class _8_三元运算符 {
    public static void main(String[] args) {
        
        //x ? y : z
        //如果x==true,则结果为y,否则结果为z;
        int score = 80;
        System.out.println(score<60?"不及格!":"成绩合格!");

    }
}
输出:
    成绩合格!

包机制

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

导包

JavaDoc

javadoc命令是用来生成自己API文档的——文档注释

JDK在线API帮助文档

参数信息:

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

借助文档注释符:/**

public class _9_javaDoc {

    String name;

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

}

通过命令行生成

通过命令行生成

格式:javadoc 参数 java文件
举例:javadoc -encoding UTF-8 -charest UTF-8 文件名.java

//生成API文档
//-encoding UTF-8 -charest UTF-8让中文展示更加正常

通过IDEA生成javadoc文档

在这里插入图片描述

在这里插入图片描述

1.选择生成JavaDoc文档的范围
2.输出目录自己专门设置一个文件夹,方便后期查阅
3.区域设置,决定文档的语言,简体中文就是zh_CN、繁体(台湾)zh_tw、繁体(香港)zh-hk、英语(香港)en-hk、英语(美国)en-us、英语(英国)en-gb、英语(全球)en-ww
4.设置参数为了显示中文不出现乱码
-encoding UTF-8 -charset UTF-8
5.即可生成doc文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值