二.Java基础

一.注释

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

Java中的注释有3种:

  • 单行注释
  • 多行注释
  • 文档注释

新建一个空的工程,然后在里面可建多个项目。

File——>New——>Module,项目名。

单行注释: //

多行注释: /* 注释内容 */

文档注释: /** */

// 我是单行注释
/*
我是多行注释
 */
/**
 * @Description  hello world
 * @author xxx
 * */

二.标识符和关键字

Java关键字:51个+2个保留字 = 53个关键字

  1. Java的保留关键字

    • const —— 常量,常数:用于修改字段或局部变量的声明。
    • goto —— 转到:指定跳转到标签,找到标签后,程序将处理从下一行开始的命令
  2. 访问修饰符的关键字(3个)

    • public(公有的):可跨包
    • protected(受保护的):当前包内可用
    • private(私有的):当前类可用
  3. 定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(6个)

    • class(类):public class A(){}花括号里是已实现的方法体,类名需要与文件名相同
    • interface(接口):public interface B(){}花括号里有方法体,但没有实现,方法体橘子后面是英文分号;结尾
    • abstract(声明抽象):public abstract class C(){}介于类与接口中间,可以有,也可以没有已经实现的方法体
    • implements(实现):用于类或接口,实现接口public class A interface B(){}
    • extends(继承):用于继承类public class A extends D(){}
    • new(创建新对象):A a=new A();A表示一个类
  4. 包的关键字(2个)

    • import(包的关键字):当使用某个包的一些类时,仅需要类名,然后使用ctrl + shift + o或者选定类名(类或属性或方法)按住ctrl + 单击,即可自动插入类所在的包
    • package(定义包的关键字):将所有相关的类放在一个包类以便查找修改等
  5. 数据类型的关键字(12个)

    • byte (字节型):8 bit
    • char (字节型):16 bit
    • boolean (布尔型):–
    • short (短整型):16 bit
    • int (整型):32 bit
    • float (浮点型):32 bit
    • long (长整型):64 bit
    • double (双精度):64 bit
    • void (无返回):public void A(){}其他需要反回的经常与return连用
    • null (空值)
    • true (真)
    • false (假)
  6. 条件循环(流程控制)(12个)

    • if (如果) :if(条件语句{执行代码}如果条件语句成立,就开始执行{}里面的内容
    • else (否则,或者) :常与if连用,用法相同:if(…){…}else{…}
    • while (当什么时候):while(条件语句){执行代码}
    • for(满足三个条件时):for(初始化循环变量;判断条件;循环变量值{}
    • switch (选择结构):switch(表达式){case 常量表达式1:语句1;…case 常量表达式2;语句2;default:语句;}default就是如果没有匹配的case就执行它,default并不是必须的。case后的语句可以不用大括号。
    • case (匹配switch的表达式里的结果) :同上
    • default (默认): default就是如果没有匹配的case就执行它, default并不是必须的
    • do (运行) :通常与while连用
    • break (跳出循环):直接跳出循环,执行循环体后的代码
    • continue (继续) : 中断本次循环,并开始下一轮循环
    • return (返回) :return 一个返回值类型
    • instanceof (实例):一个二元操作符,和==、>、<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
  7. 修饰方法、类、属性和变量(9个)

    • static(静态的):属性和方法都可以用static修饰,直接使用类名、属性和方法名。只有内部类可以使用static关键字修饰,调用直接使用类名、内部类类名进行调用。static可以独立存在
    • final(最终的不可被改变):方法和类都可用final来修饰;final修饰的类是不能被继承的;final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量
    • super(调用父类的方法):常见public void paint(Graphics g){super.paint(g);…}
    • this(当前类的父类的对象):调用当前类中的方法(表示调用这个方法的对象)this.addActionListener(al):等等
    • native(本地)
    • strictfp(严格,精准)
    • synchronized(线程,同步):一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块
    • transient(短暂)
    • volatile(易失)
  8. 错误处理(5个)

    • catch(处理异常):(1)try+catch 程序流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句

      ​ (2)try+catch+finally 程序流程是:运行到try块中,如果有异常抛出,则转到catch垮,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后 面的语句

      ​ (3)try+finally 程序流程是:运行到try块中,如果有异常抛出,则转到finally块的代码。

    • try(捕获异常)

    • finally(有没有异常都执行)

    • throw(抛出一个异常对象):一些可以导致程序出问题,比如书写错误,逻辑错误或者是api的应用错误等等。为力防止程序的崩溃就要预先检测这些因素,所以java使用了异常这个机制。在java中异常是靠“抛出” 也就是英语的“throw”来使用的,意思是如果发现到什么异常的时候就把错误信息“抛出”

    • throws(声明一个异常可能被抛出):把异常交给他的上级管理,自己不进行异常处理

  9. 其他(2个)

    • enum(枚举,列举,型别)
    • assert(断言)

三. 数据类型

强类型语言:(如java)要求变量使用严格符合规定,先定义后使用。

​ 提高安全性,牺牲一定的速度。

弱类型语言:变量可以不符合规定。如VB,JavaScript等。

Java数据类型两大类:

  • 基本类型

    • 数值类型

      整数类型:byte 1字节:-128~127

      ​ short 2字节:-32768~32767

      ​ int 4字节:

      ​ long 8字节:

      浮点类型:float 4字节

      ​ double 8字节

      字符类型:char 2字节

    • boolean类型

      占1位 只有true和false两个值

  • 引用数据类型

    接口

    数组

字节?

位(bit):计算机存储最小单位。

字节(byte):数据处理基本单位

1B = 8bit 1T = 1024G 1G=1024M 1M=1024K 1k =1024B

四. 数据类型拓展/面试题

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展    进制   二进制 0b  八进制0   十进制   十六进制0x
        int i = 10;
        int i2 = 010;
        int i3 = 0x10;  //十六进制   0~9  A~F

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("==========================");
        //===========================================
        //银行业务如何表示?
        //浮点数拓展
        //===========================================
        //float和double是有问题的
        //有限  离散的    存在舍入误差  接近但不等于
        // 最好完全使用浮点数进行比较

        //银行业务使用   BigDecimal   数学工具类  表示

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

        float d1 = 2223232232232232f;
        float d2 = d1 + 1;
        System.out.println(d1==d2);  //true



        //===========================================
        //字符拓展
        //===========================================

        char c1 = 'a';
        char c2 = '中';

        System.out.println(c1);
        System.out.println((int) c1);   //强制换行
        System.out.println(c2);
        System.out.println((int) c2);   //强制换行

        //所有的字符本质还是数字
        //编码  Unicode 表:(97=a  65=A)  2字节   65536    EXcel   2^16 = 65536
        // U0000   ~    UFFFF

        char c3 = '\u0061';
        System.out.println(c3);  //a

        //转义字符
        //  \t  制表符    \n  换行符     ...
        System.out.println("Hello\tWorld");


        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);  //false

        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc==sd);   //true

        //布尔值扩展
        boolean flag = true;
        //if(flag==true){}
        //if(flag){}
    }
}

五. 类型转换

java 强类型语言,有些运算要用到类型转换。

低  ---------------------->  高
byte,short,char-> int -> long -> float -> double  //小数优先级大于整数
int i = 128;
        byte b = (byte)i;  //byte -128~127  内存溢出

        //强制转换   (类型)变量名   高--低
        //自动转换    低--高  直接转
        double c = i;

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

        //注意点
        //1. 不能对布尔值转换
        //2. 不能把对象类型转换为不相关的类型
        //3. 在把高容量转低容量时,强制转换
        //4. 转换时候可能存在内存问题,以及精度问题
        System.out.println("=============");
        System.out.println((int)23.7);  // 23
        System.out.println((int) -45.89f);  //45

        System.out.println("====================");
        char d = 'a';
        int e = d+1;
        System.out.println(d);   //a
        System.out.println((char)d);  //a
//操作比较大的数时注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        System.out.println(money);
        int years = 20;
        int total = money*years;//-1474836480  计算溢出了
        long total2 = money*years; //默认是int,转换之前已经溢出了
        System.out.println(total);

        long total3 = money*((long)years); //先转一个数为long
        System.out.println(total3);//正确

六. 变量 常量 作用域

  • 变量是什么 可以变化的量
  • java每个变量必须声明其类型
  • java变量是程序中最基本的存储单元,要素:变量名,变量类型和作用域。
type varName  [=value] [{, varName=[value]}];
//数据类型   变量名 = 值;  可以使用逗号隔开声明多个同类型变量

注意事项:

  • 每个变量都有类型
  • 变量名必须是合法标识符
  • 变量声明是一条完整语句,每个生命以分号结束。

变量作用域

  • 类变量
  • 实例变量
  • 局部变量

常量

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

  • 特殊的变量

    final 常量名=值
    final double PI=3.14;
    
  • 常量名一般使用大写字符。

变量命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则: monthSalary
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线: MAX_VALUE
  5. 类名: 首字母大写和驼峰原则:Man
  6. 方法名:首字母小写和驼峰原则: run()

七. 基本运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=, instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符: ?:
  • 扩展赋值运算符:+=,-=,*=,/=

new一个包package,将之前所有类移入包内。

---------加减乘除----------

二.Java基础_第1张图片

----------long,int,short,byte---------------

二.Java基础_第2张图片

----- % 取余 ------------

在这里插入图片描述

------------关系运算符 > < == != 返回true/false------------------

二.Java基础_第3张图片

八. 自增自减运算符,Math类

-------------- ++ – 自增自减运算符 --------------------

二.Java基础_第4张图片

九. 逻辑运算符、位运算符

逻辑运算:

二.Java基础_第5张图片

位运算:

二.Java基础_第6张图片

十. 三元运算符及小结

扩展赋值运算符: += -= *= /=

+号面试题

二.Java基础_第7张图片

三元运算符(条件运算符)

二.Java基础_第8张图片

运算符的优先级:

二.Java基础_第9张图片

十一. 包机制

  • Java提供包机制,用于区别类名的 命名空间(不同包下可取相同类名) 本质就是文件夹

就类似同一文件夹下不能有相同文件名的两个文件。

  • 包名命名规范

一般用公司域名倒置 作为包名: com.baidu.www

  • 为了使用某一个包内的成员,java中要明确导入该包,使用import语句即可。
import package1[.package2...].(classname|*);

import必须放在package下面,package永远在最上方。

包名.* ; 导入该包下所有类。

二.Java基础_第10张图片

tips: 如果新建com.xxx.xxx包名,没有分开显示,点击project旁边的齿轮,取消选中compact middle package这一行。

浏览文件夹下阿里开发手册。

十二. javaDoc生成文档

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

  • 参数信息

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

跟文档注释,类注释,方法注释相关。

1. 命令行生成

打开文件夹下的cmd方法:

  1. shift + 鼠标右键
  2. 在文件夹路径头部,输入cmd 回车。(暂时不行)

输入以下命令编译成一份文档:

javadoc -encoding UTF-8 -charset UTF-8 Doc.java(文件名)

执行完后在当前文件夹下生成一堆文件,点击打开index.html文件,就是跟jdk帮助文档类似的文档。

2. 使用IDEA生成javaDoc文档

​ 2.1 打开idea菜单Tools—>Generate JavaDoc项。

二.Java基础_第11张图片

​ 2.2

二.Java基础_第12张图片

locale可填 zh_CN 上面框里可选 生成那些注释。

你可能感兴趣的:(#,Java学习笔记整理,java学习,基础语法)