Java基础

Java基础

Java特性:

简单,OOP,分布式,健壮,安全,体系结构中立,可移植,解释型,高性能,多线程,动态

多线程:通常是两种方式:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

1. 注释

//1.单行注释
//输出一个Hello,World!
//2.多行注释 /* 注释 */
		/*
        我是多行注释
         */

//3.文档注释
		/**
         * @Description: Hello,World!
         * @Author:暖神,xx company
         */
  • IDEA调节字体颜色

    File-->settings-->Editor-->Color Scheme-->Java-->Comments-->Block comments,JavaDoc,Line comments

    改注释字体颜色

2. 标识符与关键字

  1. Java所有的组成部分都需要名字,类名,变量名以及方法名都被成为标识符
  2. 标识符注意点:
    • 首字母:A-Z,a-z,$,_
    • 首字母之后:A-Z,a-z,$,_,数字
    • 关键字不能作标识符
    • 大小写敏感
    • 中文变量名可用,但尽量不用

3. 数据类型

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

    弱类型语言

  2. java分为基本数据类型和引用类型

    • 基本数据类型:数值类型和布尔类型
      • 数值类型:整数类型,浮点类型和字符类型
        • 整数类型:byte1,int4,short2,long8
        • 浮点类型:float4,double8
        • 字符类型:char2
      • 布尔类型:true和false.占1位
    • 引用类型:class,interface,arraylist
//  1.  整数 有取值范围
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//后面加L表示使用long类型定义
//  2.  浮点类型
float f = 50F;
double d = 60;
//  3.  字符类型
char c = '神';
//  字符串 String不是关键字, 内置类
//String str = "暖神";
//  4.  布尔类型
boolean flag = true;
//boolean flag = false;

4. 数据类型扩展

  1. 整数扩展

    //  1.  整数扩展
    int i1 = 0b10;//二进制
    int i2 = 010;//八进制
    int i3 = 0x10;//十六进制
    
  2. 浮点数扩展

    //  2.  浮点数扩展
    //(1)float 有限  离散  舍入误差    接近但不等于
    //double
    /**
     * (2)最好完全避免使用浮点数进行比较
     */
    //(3)银行业务-->钱
    //BigDecimal    数学工具类
    float f = 0.1f;
    double d = 1.0/10;
    System.out.println(f==d);//flase
    
    float f1 = 23135413465431f;
    double d1 = f1+1;
    System.out.println(f1==d1);//true
    
  3. 字符扩展

    //  3.  字符扩展
    char a1 = 'a';
    char a2 = '神';
    
    System.out.println(a1);
    System.out.println((int)a1);//强制类型转换
    System.out.println(a2);
    System.out.println((int)a2);//强制类型转换
    //所有字符本身还是数字
    //Unicode(范围U0000-UFFFF) 表:(a=97,A=65) 2字节 0-65536 Excel 2 16次方
    char c = '\u0061';
    System.out.println(c);//a
    
  4. 转义字符

    转义字符 意义
    \n 换行
    \t 制表符
    \r 回车
    \v 垂直制表
    \\ 代表一个反斜线'\'
    \b 退格
  5. 比较地址和值

    //  5.比较地址和值
    String str1 = new String("hello world");
    String str2 = new String("hello world");
    System.out.println(str1==str2);
    
    String str3 = "hello world";
    String str4 = "hello world";
    System.out.println(str3==str4);
    //对象    从内存分析
    
  6. 布尔值扩展

    //  6.布尔值扩展
    boolean flag = true;
    if (flag=true){}
    if (flag){}//推荐
    //less is More.代码要精简
    

5. 类型转换

  1. 强制类型转换:(类型)变量名,高-->低

    自动类型转换:低-->高

    int i =128;
    byte b = (byte)i;//内存溢出
    System.out.println(i);
    System.out.println(b);
    
  2. 注意:

    • 不能使用布尔值转换
    • 不能把对象类型转为不相干的
    • 把高容量转换到低容量为强转
    • 转换可能存在溢出或精度问题
  3. ep:

    //数值计算过大,要注意内存溢出问题
    //jdk7特性,数字可用下划线分割
    int money = 10_0000_0000;
    int years = 20;
    int total = money*years;//已经出现溢出问题
    long total2 = money*years;//转换之前及出现问题
    long total3 = money*((long)years);//把其中一个改成long类型
    System.out.println(total3);
    

6. 变量,常量,作用域

  1. 变量:

    1. Java属于强类型语言,v必须声明类型
    2. Java v属于最基本的存储单元,三要素:varNmae,varType,作用域
    3. 注意事项:
      • v都有类型,基本类型/引用类型
      • varName是合法标识符
      • v的声明是完整语句,结尾加;
  2. 变量分类

    • 类变量:static,可在main方法中直接调用
    • 实例变量:从属于对象,未赋予初始值时,使用默认值
      • 数字类型默认0 0.0
      • 布尔类型默认false
      • 其他类型默认null
    • 局部变量:必须声明和初始化值
  3. 常量:一旦规定不可更改

    final static double PI = 3.14;
    
  4. v命名规范

    • 变量,方法,类名要求见名知意

    • 类成员v,局部v,方法名:首字母小写和驼峰原则.

      lastName,monthSalary,run(),runRun()

    • 常量:大写字母以及下划线.MAX_VALUE

    • 类名:首字母大写和驼峰原则.Man(),GoodMan()

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

//实例v:从属于对象,没有给定初始值,基本默认0 0.0,布尔默认false,其他默认null
int age;
String name;

//常量:修饰符static不存在先后
final static double PI = 3.14;
//static final double PI = 3.14;


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

    //局部v
    int i = 10;
    String str = "鸣人";
    System.out.println(i);
    System.out.println(str);

    //vtype vname = new classname;
    Demo6 demo6 = new Demo6();

    System.out.println(demo6.age);
    System.out.println(demo6.name);

    System.out.println(salary);

    System.out.println(PI);
}

7. 运算符

  1. Java运算符

    运算符

    • Java运算符优先级

      优先级 运算符 综合性
      1 () [] 从左到右
      2 ! +(正) -(负) ~ ++ -- 从右到左
      3 * / % 从左到右
      4 +(加) -(减) 从左到右
      5 << >> >>> 从左到右
      6 < <= > >= instanceof 从左到右
      7 == != 从左到右
      8 &(按位与) 从左到右
      9 ^ 从左到右
      10 | 从左到右
      11 && 从左到右
      12 || 从左到右
      13 ? : 从右到左
      14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右到左
    //++ --自增 自减 一元运算符
    int a = 3;
    int b = a++;
    System.out.println(a);//先赋值后++
    int c = ++a;//先++后赋值
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    
    //幂运算 2^3=8 2*2*2=8
    double pow = Math.pow(2, 3);//自动补齐ctrl+alt+v
    System.out.println(pow);
    
  2. 短路运算

    int c = 5;
    boolean d = (c<4)&&(c++);
    System.out.println(c);
    System.out.println(d);
    
  3. 位运算符

    /*
    A = 0011 1100
    B = 0000 1101
    -------------------
    A&B = 0000 1100
    A|B = 0011 1101
    A^B = 0011 0001
    ~B = 1111 0010
     
     << *2
     >> /2
     0000 0010 2
     0000 1000 8
     0001 0000 16
     */
    
  4. 条件运算符

    //(1)字符串连接符 +,String
    int a = 10;
    int b = 20;
    System.out.println(""+a+b);
    System.out.println(a+b+"");
    //(2)三目运算符 ? :
    score = 80;
    String state = score < 60?"不及格":"及格"
    System.out.println(state);
    

8. 包机制

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

//*是通配符,代表导入该包下所有类
import package.(classname|*)

Ctrl+鼠标左键可以点击跳转到包下

9. JavaDoc

  1. javadoc命令是用来生成个人API文档
/**
 * @author 作者
 * @version 版本号
 * @since 初始jdk版本号
 */
public class Doc {
    String name;

    /**
     *
     * @param 参数名
     * @return 返回值
     * @throws 异常情况
     */
    public String test(String name) throws Exception{
        return name;
    }
}
  1. cmd命令行输出javadoc文档

    javadoc -encoding UTF-8 -charset UTF-8 Doc.java
    
    • 查找IDEA生成JavaDoc文档

      • 1

        IDEA生成JavaDoc1

      • 2

        IDEA生成JavaDoc2

        • 选择项目或指定文件
posted @ 2020-06-06 18:57  青葙。  阅读(144)  评论(0)    收藏  举报