Java基础知识笔记(含代码举例)

文章同步:

知乎: Java语法基础知识(笔记)

简书:Java基础知识笔记(含代码举例)

博客园:Java基础知识笔记(含代码举例)

一、注释、标识符、关键字

注释

  • 平时我们写的代码量较小时,可以看的懂。但是一旦结构复杂起来,我们就需要注释了
  • 注释平不会被执行,是给我们程序员看的
  • 书写注释是一个非常好的习惯
  • java中有三种注释:
    • 单行注释 // 注释部分
    • 多行注释 /* 注释部分*/
    • 文档注释
//有趣的代码注释:
/*                                                                   
                               _(\_/) 
                             ,((((^`\
                            ((((  (6 \ 
                          ,((((( ,    \
      ,,,_              ,(((((  /"._  ,`,
     ((((\\ ,...       ,((((   /    `-.-'
     )))  ;'    `"'"'""((((   (      
    (((  /            (((      \
     )) |                      |
    ((  |        .       '     |
    ))  \     _ '      `t   ,.')
    (   |   y;- -,-""'"-.\   \/  
    )   / ./  ) /         `\  \
       |./   ( (           / /'
       ||     \\          //'|
       ||      \\       _//'||
       ||       ))     |_/  ||
       \_\     |_/          ||
       `'"                  \_\
                            `'"                         
 */                                                                     

关键字

abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

标识符

  • java所有组成部分部分都需要名字。类名、变量名、方法名都被称为标识符。

  • 所有标识符都应该以字母"A-Z,a-z"、美元符"$"、下划线"_"为首字符开始的。

  • 首字符后可以是字母"A-Z,a-z"、美元符"$"、下划线"_"或数字之间任意组合的。

  • 不能使用关键字作为标识符。

  • 合法标识符举例:

    age、_school、$dollar

  • 不合法的标识符举例

    123abc、-mount、#cat

二、数据类型

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

  • 弱类型语言

  • Java的数据类型分为两类

    • 基本类型(primitive type)

      1. 整数类型

        • byte占1字节:-128-127
        • short占2字节
        • int占4字节
        • long占8字节
      2. 浮点数类型

        • float占四个字节
        • double占四个字节
      3. 字符型

        • char占两个字节
      4. boolean类型:占一位,有true、false

    • 引用类型(reference type)
      - 类
      - 接口
      - 数组

    字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。一个字节存储8位无符号数,储存的数值范围为0-255。(1字节=8位)(1024B = 1k)(1024k = 1M)(1024M = 1G)

    那么电脑32位和64位有什么区别呢?

拓展

  • 熟练进制转换方法 进制转换

    十进制 二进制0b 八进制0 十六进制0x
    0~10 0~1 0~7 0~9 A~F
  • 避免使用浮点数进行数值比较

    浮点数比较会出现精度问题 浮点数比较会出现的问题

    float表现的字长是有限的、离散的。浮点数一般存在一个概念叫“舍入误差”,由于字长很大的时候表现出来的就是一个大约的数、是不等于的数。

三、类型转换

  • Java是一个强类型语言,所以有些运算中需要运用到类型转换

    低==============================》高

    bytes,short,char -> int -> long -> float ->double

  • 运算中不同类型的数据有限转换成同一类型,然后进行运算。

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

        
        int i = 128;
        byte b = (byte)i;  //内存溢出
        double c = i;

        //强制转换  (类型)变量名  高===》低
        //自动转换   低==》高

        System.out.println(i);   //128
        System.out.println(b);   //-128
        System.out.println(c);   //128.0

        /*
        * 注意点
        * 1、不能对布尔值进行转换
        * 2、不能把对象转换为不相关的类型
        * 3、吧高容量向低容量时候,强制转换
        * 4、低容量像高容量转换时自动转换
        * 转换过程中可能出现内存溢出、精度问题
        * 
        */

    }
}

四、变量

  • 变量就是能变化的量
  • Java是一个强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其中包括变量名,变量类型,作用域
type varname [=value][{,varname[=value]}];
//数据类型 变量名 = 值;可以用逗号隔开多个同类型的变量
  • 注意事项

public class Demo03 {

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

    //属性:变量

    //示例变量:从属于对象;如果不进行初始化,这个类型默认值 0 0.0 null
    //boolean默认值是false;
    //除了基本类型,其余都是null;
    String name;
    int age;


    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i = 13;
        System.out.println(i);

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

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

    }

    //其他方法
    public void add(){
        System.out.println();
    }
}

五、常量

  • 常量(constant):初始化(initialize)后不能改变值。
  • 可以理解成一种特殊变量,他的值设定后,在程序运行过程中不允许被改变。
final 常量名 = 值;
final double PI = 3; 
  • 常量名一般使用大写字符。
public class Demo04 {

    //修饰符不区分先后顺序
    static final double PI = 3;

    public static void main(String[] args) {
        System.out.println(PI);
    }
}
//shuchu :3.0
  • 变量名的规范
    • 所有变量、类名、方法:见名知意
    • 所有成员变量、局部变量、方法名:首字母小写和驼峰原则:除第一个单词意外其余单词首字母大写,monthSalary
    • 常量:大写字母和下划线:MAX_VALUE
    • 类名:首字母大写和驼峰原则:GoodMan

六、运算符

  • 算数运算符(+, -, *, / ,%,++,--)
public class Demo01 {
    public static void main(String[] args) {
        //二元运算
        //ctrl+D复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;

        System.out.println(a+b);      //30
        System.out.println(a-b);      //-10
        System.out.println(a*b);      //200
        System.out.println(a/(double)b); //结果为小数0.5,需要转换一下类型

    }
}
public class Demo02 {
    public static void main(String[] args) {
        long a  =7419647L;
        int b = 123;
        short c = 456;
        byte d = 8;

        System.out.println(a+b+c+d);//long
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int
        /*
        运算中只要出现long类型,其输出结果为long类型
        运算中没有long,输出结果均为int型
        */

    }
}
public class Demo03 {
    public static void main(String[] args) {
        // ++ , -- 自增自减
        int a = 3;
        int b = a++;  //先将a的值赋给b,在执行a自增1
        // a++  a = a + 1
        int c = ++a; //先自增,在赋值给c

        System.out.println(a);   //5
        System.out.println(b);   //3
        System.out.println(c);   //5

        //幂运算 2^3 2*2*2
        double asd = Math.pow(2,3);
        System.out.println(asd);  //8.0
    }
}
  • 逻辑运算符 (&&,||,! )
public class Demo04 {
    public static void main(String[] args) {
        //与或非
        boolean a = true ;
        boolean b = false;

        System.out.println("a && b:"+(a&&b)); //a && b:false
        System.out.println("a || b:"+(a||b)); //a || b:true
        System.out.println("!(a && b):"+!(a&&b)); //!(a && b):true

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);// 未执行(c++<4)
        System.out.println(d);//false
        System.out.println(c);//5

        int e = 5;
        boolean f = (e++<4)&&(e<4);
        System.out.println(f);//false
        System.out.println(e);//6


    }
}

  • 关系运算符(> , < , >= , <= , == , !=instanceof)
  • 位运算符(& ,|,^, ~ , >> , << , >>>(了解!!!))
public class Demo05 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        ------------------------
        A&B= 0000 1100
        A|B= 0011 1101
        A^B= 0011 0001(不相同为1,相同为0)
        ~B = 1111 0010

        2*8 = 16   2*2*2*2
        位运算,效率高
        <<  左移  相当于×2
        >>  右移  相当于➗2
        0000 0001     1
        0000 0010     2
        0000 0100     4
        0000 1000     8
        0001 0000     16
         */
        System.out.println(2<<3);//将2左移3位,即2×8
    }
}
  • 扩展赋值运算符:(+= ,-= , *= , /=)
public class Demo06 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a += b; //a = a + b
        System.out.println(a);
        a -= b; //a = a -b
        System.out.println(a);

        //字符串连接符 + , String
        System.out.println("haha"+a+b); //haha1020.字符串在前面,后面数字位拼接
        System.out.println(a+b+"haha"); //30haha,字符串在后面,前面的数字为运算


    }
}
  • 条件运算符(? :)
public class Demo07 {
    public static void main(String[] args) {
        // x?y:c
        //如果x为true结果为y,否则为c。

        int score = 80;
        String type = score<60?"fail":"success"; //必须掌握
        System.out.println(type);

    }
}

  • 赋值运算符(=)
  • 运算符优先级(略,可自行百度。现一般规范程序为了提高可读性都使用括号)

七、包机制

  • 为了更好地组织类,Java提供了包机制,用于各类名的命名空间。
  • 包语句的格式为:
package pkg1[.pkg2[. pkg3]];
  • 一般运用公司域名倒置作为包名;

例如 com.baidu.www

  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句完成此项功能。
import package1[.package2...].(classname|*)

八、JavaDoc

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

  • 参数信息

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

    • 命令行:
    javadoc [-encoding UTF-8 -charset UTF-8] doc.java
    
    • 使用IDEA产生JavaDoc文档

    如何使用Intellij Idea生成JavaDoc文档

posted @ 2021-07-03 12:39  哈哈hall了  阅读(318)  评论(0编辑  收藏  举报