Java基本知识

Java基本知识

跟着狂神学Java,记录如下笔记

注释

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

注释并不会被执行,是给人看的

写注释一样要注意规范

annotation

comment

  • Java中的注释有三种

    • 单行注释

      public static void
      //public static void
      //颜色不一样,第二行是文本
      
    • 多行注释

      public static void
      /*
      public
      static
      void
      */
      
    • 文档注释

      /**
        *@Description HelloWorld
        *@Author BlockWolfs
        */
      
      • @后面的字符将会识别
      • 他们的内容是有意义的

关键字

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

标识符

Java所有的组成部分都需要名字

类名,变量名以及方法名都是标识符

  • 注意
    • 表示符号命名规则
      • 以字母A-Z或a-z开头
      • $或者下划线"_"字符开头
      • 数字可以是标识符的一部分,但是不能作为开头

数据类型

  • 强类型语言
    • 变量必须先定义
    • 也称强变量类型语言
  • 弱类型语言
    • 变量可以不用先定义
  • Java的数据类型
    • 基本数据类型(primitive type)
      • byte
      • short
      • int
      • long
      • float
      • double
      • char
    • 引用类型(reference type)
      • 接口
      • 数组

变量

type valueName [=value] [{,varName[=value]}];

Example

int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//需要L表示该数字是long类型,默认是int类型
float num5 = 50.1F;//需要F表示该数字是float类型,默认是double类型
double num6 = 3.141592653589793238462643;
//布尔值:是非 true flase 占用1位值
boolean flag = true;

标识符后面取的名字是变量

字节

  • 位(bit)

    • 计算机内部数据存储的最小单位
    • 11001100是一个八位二进制数
    • 习惯上用b来表示
  • 字节(byte)

    • 计算机中数据处理的基本大卫
    • 习惯上用B来表示
  • 1byte=8bit

    1B=8b

Java当中进制的表示

int decimal = 10; //十进制
int octal = 010; //八进制
int hexadecimal = 0x10; //十六进制

Java当中的一些容易犯的错误

float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);

float d1 = 23232323232323232f;
float d2 = d1 + 1;
System.out.println(d1==d2);

float能表示的范围有限

舍入误差

大约,接近但不等于

不建议直接对float类型进行不叫,可以使用BigDecimal类来对进行比较

字符类型

char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c2); //强制类型转化
System.out.println(c2);
System.out.println((int)c2); //强制类型转化
System.out.println('\u0061');

所有的字符本质还是数字

使用 Unicode 编码表

\u0061 是一种转义转义字符

\t 制表符

\n 换行

String类型

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); //返回 false
System.out.println(sc.equals(sb)); //返回 true

==是判断两个字符串对象的内存地址(哈希地址)是否一致,来判断是否是同一个字符串对象

虽然字符串内容一致,但不是同一个字符串对象

需要使用字符串对象当中的equals方法来判断内容是否一致

类型转化

  • 强制类型转换
    • 类型由高到低
  • 自动类型转换
    • 类型由低到高

注意

  • 不能对布尔值进行转化
  • 不能将对象转化为不相干的类型
  • 高容量转化为低容量的时候使用强制转化
  • 转化的时候可能存在内存溢出或者精度损耗问题
char c = 'a';
int d = c + 1 ;
System.out.println(c);
System.out.println((char)d);

溢出

int money = 10_0000_0000;
System.out.println(money);

long money_1 = 10_0000_0000 * 20;
System.out.println(money_1);

long money_2 = 10_0000_0000 * 20L;
System.out.println(money_2);

第一个输出会产生溢出

第二个输出在运算过程中使用的是int类型,依然会溢出

第三个输出添加L就可以正常运算输出

变量的作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Demo08 {
    //类变量 static
    static double salary = 2500;

    //实例变量,从属于对象 不用初始化
    //如果不进行初始化,类型会有默认值
    //boolean 默认值是false
    String name;
    int age;

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

        //变量类型 变量名字 = new Demo08();
        Demo08 demo08 = new Demo08();
    }

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

    }
}

常量

//修饰符不存在先后顺序
static final double PI = 3.14;
final static double pi = 3.14;

变量的命名规范

  • 所有变量,方法,类名:见名知意
  • 类成员变量
    • 首字母小写
    • 驼峰原则
      • Example :monthSalary
  • 局部变量
    • 首字母小写
    • 驼峰原则
  • 类名
    • 首字母大写
    • 驼峰原则

运算符

Java语言支持的运算符

  • 算术运算符
    • +,-,*,/,%,++,--
  • 赋值运算符
    • =
  • 关系运算符
    • <,>,>=,<=,==,!=,instanceof
  • 逻辑运算符
    • &&,||,!
  • 位运算符
    • &,|,^,~,>>,<<,>>>
  • 条件运算符
    • ?,:
  • 复合赋值运算符
    • +=,-=,*=,/=

工具类

可以用很多工具类实现很多复杂的运算

double value = Math.pow(2,3);
System.out.println(vlaue);

字符串连接符 +

int a = 1;
int b = 2;
System.out.println(""+a+b);
System.out.println(a+b+"");

遇见String对象,自动转化为String

第一个输出先转化成String,不运算

第二个输出先运算,后转化成String

三目运算符

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

包机制

syntax

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

一般利用公司域名倒置作为包名; com.kuangstudy.blod.www

package com.kuang.operator;
import java.util.Date;

package必须放在最上面

import com.kuang.base.*;

将包下的所有类都导入

JavaDoc

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

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

生成Javadoc命令

javadoc -encoding utf-8 -charset utf-8 [java文件]

以上命令使用utf-8编码打开,生成的javadoc也是utf-8的文件

posted @ 2021-01-01 21:51  BlockWolfs  阅读(65)  评论(0)    收藏  举报