注释

//单行注释

/*多行

注释

*/

Java 支持三种注释方式。前两种分别是 // 和 /* */,第三种被称作说明注释,它以 /** 开始,以 */结束。

说明注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。

说明注释,使你更加方便的记录你的程序信息。

 

注释文档

/**

*@author作者名

*@version版本号

*@since指明JDK最低要求

*@param参数名

*@return返回值情况

*@throws异常抛出情况

*/

在java源码位置打开命令行输入 javadoc -encoding UTF-8 -charaset -UTF-8 XXX.java(替换文件名)

可以输出java代码说明文档

 ————————————————————————————————————————

标识符

所有标识符都应以字母、美元符$或下划线开头(不能使用关键字)

数据类型

java分为基本类型与引用类型(类、接口、数组)

float num1=3.14f;

double num2 = 3.1415926;

long num3 = 4646465453354L;

进制

 8进制  以0开头,0~7组成        如:012345
10进制 以1~9开头,0~9组成        如:100
16进制 以0X开头,0~9或者a~f组成   如:0x12c

 ______________________________________________________________________________________

 数据类型转换

char c1 = 'a';

System.out.println((int)c1); //97 

 char c2 ='\u0061';

System.out.println(c2);//a

byte  short  char  int  long  float  double

低     ---------------------->          高

高到低需要强制转换,方法:(数据类型)

低到高自动转换

注意:

  1布尔类型无法转换

  2转换可能存在精度问题

操作大数的溢出问题

int  money = 10_0000_0000;

int years=20;

int total = money*years; //结果为负数 溢出

long total2 = money*years //默认为 int 转换之前已经出错

 

long total3 = money*((long)years);

System.out.println(""+a+b)//输出1020为String类型

System.out.println(a+b+"")//输出30 为int类型

 ——————————————————————————

转义字符与运算符

\t  tab制表符

\n换行

逻辑运算符 &&与  会产生短路运算

&&前面为false 则后面不会去运行判断

^异或 相同为0 不同为1

>>2进制右移 即为乘2  2>>3=8

<<2进制左移 即为除2 

String type = socre < 60 ?"不及格":"及格"

 ——————————————————————————————————

变量与常量

要素:数据类型 变量名称  作用域

作用域:类变量、实例变量、局部变量

public class Variable_kind {
  static int a1 = 123;
  static char c1;//类变量 存在与消失跟随类

  String s1;
  String s2="sdaasd";//实例变量 从属于对象

  static final float PI = 3.1415926f;
  final int i3 = 456789;//常量 使用final关键字

  public static void main(String args[])
  {
    int i =0;
    double d1;//局部变量
    Variable_kind v1 = new Variable_kind();
    System.out.println(v1.s2);
  }
}

命名规范

类成员变量:首字母小写+驼峰原则(除第一个单词以外首字母大写)monthSalary

局部变量:同上

方法名:同上+()

常量:大写字母和下划线 MAX_VALUE

类名:首字母大写+驼峰原则 SalaryShow

————————————————————————————————————

 包机制

一般用公司域名倒置 com.baidu.www

 ——————————————————————————————————

输入与输出

输入

Scanner scanner = new Scanner(System.in);

String str = scanner.nextline();//或者=scanner.next();

scanner.close();

输出

System.out.println(“123123”);

——————————————————————————————————

switch(a){

  case 'A':

    System.out.println(1);

    break;

  case 'B':

    System.out.println(2);

  case 'C':

    System.out.println(3);

}

如果a='A'  则输出1

如果a = ‘B’  因为没有break 所以会把B以下所有情况执行

____________________________________________________________

方法

  修饰符  返回值类型   方法名(参数类型 参数名){

    方法体;

    return 返回值;

  }

静态方法static  和类一起加载

  直接通过  类名.方法名()进行调用

非静态方法 类实例化后才存在

  需要先实例化 通过  对象名.方法名()进行调用

引用传递:本质还是值传递但是 值已修改

public class demo05{

  public static void main(String[] args){

    Person person=new Person();

    System.out.println(person.name);

    Demo05.change(person);

    System.out.println(person.name);

  }  

  public static void change(Person person){

    person.name="XXX";  

  }

}

class Person{

  String name;

}

 

——————————————————————————————————————————

数组

数组对象保存在堆中

dataType[]  name = new dataType[size]; 

int[]  a ={1,2,3}

数组长度 name.length;

输入 数组名.for 自动转换为增强型for

二维数组

定义:int[][] a={{1,2},{3,4}};  或 int[][] a=new int[2][3];

a.length为第一位长度  a[0].length为第二维长度

————————————————————————————————————

构造函数

没有返回值  名称和类名相同

使用new关键字 本质是在调用构造函数

一旦定义有参数的构造函数,无参数的构造函数必须显式定义

__________________________________________________________________
Arrays类

System.out.println(Arrays.toString(a));//输出数组

Arrays.sort(a);//排序

Arrays.fill(a,1,3,0)//在1到3之中填充0

____________________________________________________________________

抽象类

abstract关键字

抽象方法 只有方法名字 没有方法实现

抽象类的所有方法,必须由子类实现,除非子类也是抽象
受限于extend只能单继承 没有接口多继承应用广泛·

特点:

1、不能new抽象类 只能靠子类去实现

2、抽象类中可以实现普通方法

3、抽象方法必须在抽象类中

____________________________________________________________________________

接口

只有规范

关键字interface

接口内方法 默认为public abstract

类通过关键字implement实现接口中所有方法

同一个类可以实现多个接口(多继承)

——————————————————————————————————————

tip

判断字符串是否相等  str.equals("XXXX")

Ctrl+D 复制当前行至下一行

Ctrl+H打开继承树

super()调用父类的无参构造器 需在子类第一行

out文件夹下的class文件移动至src文件夹下打开 即为反编译

增强型for循环(jdk>=5)

int[] a ={1,2,3,4,5};

for(int x:a){

  System.out.println(x);

}

____________________________________________________________

引用

https://blog.csdn.net/anhuibozhoushatu/article/details/83313257

https://www.runoob.com/java/java-documentation.html

https://www.bilibili.com/video/BV12J41137hu?p=23