Java的三种注释

1
2
3
4
5
6
7
一:单行注释 //
二:多行注释 /**/
三:文档注释 /**
*
*
*/
比较特殊每行都要加星号

标识符

所有的标识符都应该以字母,美元符,或者下划线开始

首字符字后可以是字母,美元符或者下划线数字的任何字符组合

不能使用关键字作为变量名或方法名

标识符大小写敏感

数据类型

Java数据类型分两大类

基本类型

引用类型

基本数据类型分为

数值类型

整数类型:

​ byte占一个字节范围:-128-127

​ short占两个字节范围:-32768-32767

​ int占四个字节范围:-2147483648-2147483647

​ 常用int类型

​ long占八个字节范围:-922337036854775808-9223372036854775807

​ long类型需要在表示的小时候加上一个L->long num = 30L;

浮点类型:

​ float占四个字节

​ 表示时需要数字后面加上F->float num = 50.1F;

​ double占八个字节

字符类型:

​ char占两个字节

​ 注意是字符不是字符串,这里是单引号然后里面放一个字符和C语言类似

boolean类型

占1位其值只有true和false

引用数据类型分为

接口

数组

转换类型

强制转换

(类型)变量名 高—>低

1
2
int i =127;
byte b = (byte)i;

自动转换

低—>高

1
2
int i = 128;
double b = i;

注意点

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换成不相干的类型 //布尔是按照位去计算的而对象类型是字节
  3. 在把高容量转换成低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题

注:JDK7新特性,数字之间可以利用下划线分割

转换实例:

1
2
3
4
5
6
7
8
9
10
如果
int money = 10_0000_0000;
int years = 20;
int total = money*years;

long total = money*years;
/*都会导致内存溢出,虽然下面是转化成了long类型但是在计算的时候他是用int类型计算的
所以为了避免这个情况我们可以先把其中一个数转换成long类型
*/
long total = money*((long)years);

变量

注意事项

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

变量作用域

类变量

有static关键词去声明,定义在类里面,方法之外

实例变量

从属于对象,不用初始化,定义在类里面,方法之外

需要特殊调用方式

不初始化会输出默认值—>有 0 0.0 布尔值是false 除了基本类型其余都是null

局部变量

定义在方法内

例子:

1
2
3
4
5
6
7
8
public class Variable{
static int allClicks=0; //类变量
String str = "hello,world"; //实例变量

public void method(){
int i = 0; //局部变量
}
}

常量

初始化后不能改变的值

常量名一般使用大写字符

用final修饰

1
2
3
4
5
final 常量名=值;
final double PI = 3.14;
//如果出现final和static这两个相当于修饰符可以不在意先后顺序
static final double PI = 3.14;
final static double PI = 3.14;

运算符

  • 算数运算符:+,-,*,/,%,++,—

  • 赋值运算符:=

  • 关系运算符:>,<,>=,<=,==,!=,instanceof

  • 逻辑运算符:&&,||,!

  • 位运算符:&,|,^,~,>>,<<,>>>(了解)

  • 条件运算符:?,:

  • 拓展赋值运算符:+=,-=,*=,/=

算数运算符

在进行算数运算的时候如果存在大精度会整体为大精度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
long a = 11221243242L;
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
//如果存在double那么就会优先为double

++自增 --自减
例如:
int a = 3;
int b = a++; //执行完代码后先给b赋值,再自增

int c = ++a; //执行完代码之前先自增,再给c赋值

image-20240709112031458

逻辑运算符

1
2
3
4
5
6
7
8
9
10
boolean a = true;
boolean b = false;
System.out.println(b&&a);
System.out.println(b||a);
System.out.println(!(b&&a));
//&&存在短路运算
int c = 5;
boollean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);

image-20240709130634212

image-20240709131509893

位运算符

效率高

<<(左移)和>>(右移)

1
2
3
4
例如:System.out.println(3<<3);  
代表3*2^3
// <<符号右边代表乘以几个2然后再和前面的数相乘
// >>相反代表相除

字符串连接符

1
2
3
4
5
int a = 10;
int b = 20;
System.out.println(a+b); //会相加
System.out.println(""+a+b); //会连接
System.out.println(a+b+""); //会相加

image-20240709150023506

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

1
2
3
4
5
6
例如:
x ? y :z
//如果x==true,则结果为y否则结果为z

int score = 80;
String type = score < 60 ? "不及格":"及格";

包机制

一般利用域名倒置作为包名; 这里以www.zhang.com为例

包语句的语法格式: package pkg1[.pkg2[.pkg3…]];

完成导入操作格式是:import package1[.package2…].(classname|*);

1
2
3
格式例如:
package com.zhang.www; //这个要在导入包的上面
import com.zhang.www.Test;

JavaDoc

javadoc命令用来生化池呢个自己的API文档

参数信息

  • @author 作者名
  • @version 版本号
  • @since 知名需要最早JDK版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.zhang.www;
/**
*@author zhang
*@version 版本号
*/

public class Doc{
String name;
/**
*@author zhang
*@version 版本号
*@param name
*/
public String test(String name) throws Exception{
return name;
}
}