Java学习笔记-基础

基础阶段

Java基础01:注释

书写注释是一个非常好的习惯。

Java的注释有三种:单行注释、多行注释、文档注释。

文档注释和JavaDoc联合使用。

Java基础02:标识符和关键字

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

Untitled

标识符注意点:

  • 所有标识符应该以字母,美元符或者下划线开始。
  • 首字符之后可以是字母、美元符、下划线或者数字的任何字符的组合。
  • 不能使用关键字作为变量名或者方法名。

Java基础03:数据类型讲解

强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。Java就是一种强类型语言。

弱类型语言

Java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type),基本类型有8种,整数类型4种,浮点类型2种,字符类型1种,boolean一种。

Untitled

long类型后面加一个L或者l

float类型要在数字后面加个F

字符串String不是关键字,是类,是引用数据类型。

电脑的32位和64位的区别是什么?

32位操作系统只能使用32位的操作系统,而64位操作系统不但能装32位操作系统也能装64位操作系统。内存中寻址能力,64位最多可以支持128G的内存,而32位的最多只有4G的内存。64位的支持软件更多。

Java基础04:数据类型拓展以及面试题讲解

整数拓展:进制表示方法 二进制0b 十进制 八进制0 十六进制0x

浮点数拓展:float f = 0.1f和double f = 1.0/10不相等

布尔值扩展:使用变量直接判断对错if(flag)

//float  有限  离散  舍入误差  大约  接近但不等于
//最好完全避免使用浮点数进行比较
//BigDecimal类 数学工具类
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
system.out.println(f == d);

float d1 = 23131312312312313f;
float d1 = d1 + 1;
system.out.println(d1 == d2);

false
true

所有的字符本质还是数字。

char涉及到一个编码问题,Unicode编码可以处理各种语言文字,占2个字节,65536,最早的excel有65536行。

从U0000~UFFFF

//强制类型转换
char c3 = '\u0061';
system.out.println(c3);
//转义字符 
//\t 制表符
//\n 换行符
system.out.println("Hello\nWo\trld");
//思考题
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);
//对象 从内存分析
a
Hello
Wo   rld
false
true

包含很多转义字符。

Java基础05:类型转换

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

运算中,不同类型的数据先转换为同一类型,然后进行运算。

由低到高优先级:byte→short→int→long→float→double。

优先级由高到低强制转换,由低到高自动转换。

注意点:

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

内存溢出:

int i = 128;
byte b = (byte)i;

system.out.println(i);
system.out.println(b);
128
-128

精度问题:浮点数转为整数丢失小数点后的数。

常见问题:

public class Demo01 {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题。
        //JDK新特性,数字之间可以用下划线分隔
        int money = 10_0000_0000;
        int years = 20;
        int total = money * years;//-1474836480,计算的时候溢出了
        long total2 = money * years;//默认是int,转换之前已经存在问题
        long total3 = money * (long)years;//先把一个数转换为long
        System.out.println(total3);
    }
}
20000000000

Java基础06:变量、常量、作用域

变量:

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

注意事项:

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  2. 变量名必须是合法的标识符。
  3. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
public class Demo08 {
    //属性:变量

    //代码块
    static{

    }

    //实例变量:从属于对象,如果不自行初始化,这个额类型的默认值 0 0.0 布尔值默认false 字符串为null
    String name;
    int age;
    char ah;
    //类变量 static
    static double salary = 2500;

    //main方法
    public static void main(String[] args) {

        //局部变量:必须声明和初始化值
        int i = 10;
        System.out.println(i);

        //变量类型 变量名字 = new Demo08();
        Demo08 demo08 = new Demo08();
        System.out.println(demo08.age);
        System.out.println(demo08.name);
        System.out.println((int)demo08.ah);
        //类变量 static
        System.out.println(salary);

    }

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

    }

}

常量:

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

常量名字一般用大写字符。

public class Demo09 {
    //修饰符,不存在先后顺序
    static final double PI = 3.1415;
//    final static double PI = 3.1415;

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

变量命名规范:

Untitled

Java基础07:基本运算符

Untitled

package operator;

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        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 / (double)b);
    }
}
package operator;

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

        System.out.println(a + b + c + d);//long
        System.out.println(b + c + d);//int
        System.out.println(c + d);//int
    }
}
package operator;

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);

        int c = 21;
        System.out.println(c % a);//取余

    }
}

Java基础08:自增自减运算符、初识Math类

package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++ -- 自增 自减 一元运算符
        //理解++a和a++ 的区别

        //幂运算 2^3 2*2*2 = 8 很多运算我们会使用运算类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);

        
    }
}

Java基础09:逻辑运算符、位运算符

package operator;

public class Demo05 {
    public static void main(String[] args) {
        // 与 或 非
        boolean a = true;
        boolean b = false;

        System.out.println(b&&a);
        System.out.println(b||a);
        System.out.println(!(b&&a));

        //短路运算(实验)
        int c = 5;
        boolean d = (c < 4)&&(c++ < 4);
        System.out.println(d);
        System.out.println(c);

    }
}

Java基础10:三元运算符及小结

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);
        System.out.println(a + b + "");
    }
}
package operator;

public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x为true,则结果为y,否则结果为z

        int score = 50;
        String type = score < 60 ? "不及格":"及格";
        System.out.println(type);

        //if

    }
}

Java基础11:包机制

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

包语句的语法格式为:

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

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

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

import package1[.pakage2...].(classname|);
import a.b.

Java基础12:JavaDoc

package com.maynerd.operator;

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

    String name;

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

    /**
     * 
     * @param args
     */
    public static void main(String[] args) {

    }
}

之后通过命令行 javadoc 参数 Java文件。

posted @ 2022-02-22 21:24  Maynerd  阅读(22)  评论(0编辑  收藏  举报