-
注释
-
注释==笔记
-
书写注释是一种好的习惯
-
Java中的注释有三种:
单行注释
多行注释
文档注释
public class HelloWord { public static void main(String[] args) { //输出一个Helloword! System.out.println("HelloWord!"); } } //单行注释:单独注释一行 //多行注释:可以注解一段文字 /* 注释 */ /* 多行注释 多行注释 多行注释 多行注释 多行注释 多行注释 */ //文档注释:/** 注释 */ /** * @authon:忘山川 * Time:2020.03.20 */ //神注释代码 /** * _ooOoo_ * o8888888o * 88" . "88 * (| -_- |) * O = /O * ____/`---'\____ * . ' \| |// `. * / \||| : |||// * / _||||| -:- |||||- * | | \ - /// | | * | \_| ''---/'' | | * .-\__ `-` ___/-. / * ___`. .' /--.-- `. . __ * ."" '< `.___\_<|>_/___.' >'"". * | | : `- \`.;` _ /`;.`/ - ` : | | * `-. \_ __ /__ _/ .-` / / * ======`-.____`-.___\_____/___.-`____.-'====== * `=---=' * * ............................................. * 佛祖保佑 永无BUG */ /** * ━━━━━━神兽出没━━━━━━ * ┏┓ ┏┓ * ┏┛┻━━━┛┻┓ * ┃ ┃ * ┃ ━ ┃ * ┃ ┳┛ ┗┳ ┃ * ┃ ┃ * ┃ ┻ ┃ * ┃ ┃ * ┗━┓ ┏━┛ * ┃ ┃ 神兽保佑 * ┃ ┃ 代码无bug * ┃ ┗━━━┓ * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛ * ━━━━━━感觉萌萌哒━━━━━━ */
-
-
-
标识符
关键字:
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package 包
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1]
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中- Java所有组成部分都需要名字。类名,变量名以及方法名都被称为标识符。
- 所有的标识符都应该以字母,美元符或者下划线开始
- 首字符之后可以是任意字母数字下划线或者数字的任何字符组合
- 不能使用关键字命名变量名或者方法名
- 标识符对大小写敏感
- 合法标识符:name,age,sex, Age,$123 ,_123
- 不合法标识符:123,class,#abs
-
数据类型
-
强类型语言(安全性好)
要求标量的使用严格符合规定,所有变量都要先定义然后才能使用
-
弱类型语言(速度快)
要求标量的使用可以不符合规定,所有变量都要先定义然后才能使用
-
Java的数据类型分为两大类:
-
基本类型:
-
数值类型:
- 整数类型:
- byte:→ 占1个字节
- short:→ 占2字节
- int:→ 占4字节
- long:→ 占8字节
- 浮点数类型:
- float:→ 占4字节
- double:→ 占8字节
- 字符类型:
- char:→ 占2字节
- 整数类型:
-
布尔类型:只能为True或者False
字节:
位(bit):是计算机内部数据的最小单位,11001100是一个八位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B表示
1B(字节)=8bit(位)
字符:是指计算机中使用的字母数字和符号
- 1bit表示1位
- 1Byte表示一个字节1B(字节)=8bit(位)
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
-
-
引用类型:
-
类:
-
接口:
-
数组:
public class Demo2 { public static void main(String[] args) { //整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x int i=10; int i1=010;//八进制0 逢8进一 int i2=0x10;//十六进制0x 逢16进一 0~9A~F System.out.println(i); System.out.println(i1); System.out.println(i2); System.out.println("---------------------"); //浮点数扩展 //Bigdecimal 数学工具类(银行一般不是使用浮点数而是用它) //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 float f=0.2f; double d=2/10d; System.out.println(f); System.out.println(d); System.out.println(d==f); System.out.println("---------------------"); float f1=222222222222222222f; double d1=f1+1; System.out.println(f1); System.out.println(d1); System.out.println(f1==d1); System.out.println("---------------------"); //字符拓展 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字节 0~65536 Excel 2的16次方=65536 char c3='u0061'; System.out.println(c3);//a System.out.println("---------------------"); //转义字符 // 制表符 // 换行 //.............. System.out.println("hello word"); System.out.println("hello word"); //布尔值扩展 boolean flag=true; //flag==true可以省略为flag if (flag){ System.out.println("执行"); }else { System.out.println("不执行"); } } }
-
类型转换:由于Java是强类型语言,所以要进行有些运算时要进行类型转换。
低..........................................高 byte→→short→→char→→int→→long→→float→→double
-
在运算中,不同的类型需要转换为同一类型,然后进行运算
-
强制类型转化
-
自动类型转换
public class Demo3 { public static void main(String[] args) { //类型转换 int i=128; byte b=(byte)i;//内存溢出 只有127 //强制类型转换 (类型)变量名 高→→→→低 //自动类型转换 低→→→→高 long l=i;//自动类型转换 System.out.println(i); System.out.println(b); System.out.println(l); /* 注意: 1.不能把布尔值进行转换 2.不能把对象类型,转换为不相干的类型 3.再把高容量转换为低容量时,强制转化 4.转换时候肯存在内存溢出或者精度问题 */ System.out.println("======================"); //精度溢出 System.out.println((int)23.1); System.out.println((int)-45.3f); char c='a'; System.out.println((int)c); System.out.println((char)98); } }
-
-
-
-
变量
-
变量是什么:就是可以变化的量.
-
Java是一种强类型语言,每个变量都必须申明其类型
-
Java变量时程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName=[=value][{,varName[=value]}]; 数据类型 变量名 =值; 可以用逗号隔开来声明多个相同数据类型的变量。
注意事项:
- 每个变量都有类型,类型可以是基本变量,也可以是应用类型。
- 变量名必须是合法标识符。
- 变量的声明是一条完整的语句,因此必须以分号结束;
public class Demo5 { public static void main(String[] args) { //int a,b,c; //int a=1,b=2,c=3;//注重程序的可读性,不建议这种xiefa /* 建议分三行:以下的写法↓ */ int a=10; int b=20; int c=30; String name="忘川"; char num='c'; double d=0.32; } }
-
作用域:
-
类变量
-
实例变量
-
局部变量
public class Demo6 { //类变量 static static double salary=8000; //属性:变量 //实列变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0 //布尔值:默认false //除了基本类型,其余默认都是null String name; int age; //main()方法 public static void main(String[] args) { //局部变量:必须声明和初始值 int i; i=100; System.out.println(i); //实例变量 //变量类型 变量名字=new Demo6(); Demo6 demo6=new Demo6(); demo6.name="忘川"; demo6.age=20; System.out.println(demo6.name); System.out.println(demo6.age); //类变量 static System.out.println(salary); } //其他方法 public void add() { } }
-
-
-
常量
-
常量:初始化后不能改变值,不会变动的值
-
所谓常量可以理解成一种特殊的变量,他的值在设定后不会发生改变,在程序运行中不允许被改变。
-
常量名一般使用大写字符
public class Demo7 { //static 是一中修饰符不存在先后顺序 //final 代表声明的是一个常量 final static double PI=3.1415926;//值不会发生改变 static final double PI2=3.14; public static void main(String[] args) { //定义语法 //final 数据类型 常量名=值; System.out.println(PI); System.out.println(PI2); } }
- 变量的命名规范
- 所有变量,方法名,类名:见名知意(避免使用拼音)
- 类成员变量:首字母小写和驼峰式命名原则:monthSalary 除了第一个单词以外,其他单词首字母大写lastName
- 局部变量:首字母小写和驼峰式命名
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰式原则:Man
- 方法名:首字母小写和驼峰式原则:run() , runRun()
- 变量的命名规范
-
-
运算符
-
算术运算符:+,-,*,/,%,++,--
-
赋值运算符:=,+=, -=, *=, /=
-
关系运算符:>, <, >= ,<=, == ,!= , instanceof
-
逻辑运算符:&&(与),||(或), !(非)
-
位运算符:&,|,^, ~, >>,<<, (了解一下,关于 →位)
-
条件运算符 :?:
package operator; public class Demo8 { public static void main(String[] args) { //二元运算符 //Ctrl + D :复制当前行,到下一行。 int a1=10; int b1=20; int c1=30; int d1=40; System.out.println(a1+b1); System.out.println(a1-b1); System.out.println(a1*b1); System.out.println(a1%b1); System.out.println(a1/(double)b1); System.out.println("---------------"); //浮点型计算 long l1=22222222222222L; int l2=23; short l3=10; byte l4=8; System.out.println(l1+l2+l3+l4);//Lon类型 System.out.println(l2+l3+l4);//int类型 System.out.println(l3+l4);//short类型 System.out.println("---------------"); //逻辑运算符 //与(and) 或(or) 非(no) boolean a=true; boolean b=false; System.out.println("a&&b:"+(a&&b));//逻辑与:两个都为真,结果才为真。两个都为假,结果才为假。 System.out.println("a||b:"+(a||b));//逻辑或:一个为真,结果为真 System.out.println("!(a&&b):"+!(a&&b));//逻辑非:如果是真,则结果为假。如果是假,则结果为真 System.out.println("----------------"); //位运算符 /* A=0011 1100 B=0000 1101 A&B 0000 1100 (两个都为1才为1,否则为0) A|B 0011 1101 (两个都为0才为0,否则为1) A^B 0011 0001(如果两个位置都相同返回0,否则返回1) ~B 1111 0010(相反) 2*8怎么算最快? 2*2*2 << 把数字 *2 >> 把数字 /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); System.out.println("-------------------"); //条件运算符(三元运算符) //x ? y:z //如果X==true 则结果为y 否则结果为z int score=60; boolean bool=score>= 60?true:false; System.out.println(bool); System.out.println("-------------------"); //赋值运算符 int i=10; int i1=20; i+=i1;//i=i+i1; 30 i-=i1;///i=i-i1; 10 System.out.println(i); System.out.println("--------------------"); //字符串连接符 + 左右两则,有一侧有String 会进行拼接 System.out.println(i+i1); System.out.println(""+i+i1); System.out.println(i+i1+"2"); System.out.println("--------------------"); //关系运算符,返回的结果只有True false 布尔值 int o=10; int o1=20; System.out.println(o>o1); System.out.println(o<o1); System.out.println(o>=o1); System.out.println(o<=o1); System.out.println(o!=o1); System.out.println("--------------------"); //++ 自增 --自减 int r1=10; int r2=r1++;//执行完代码后在自增赋值给 r2 int r3=10; int r4=++r3;//执行完代码前在自增赋值给 r2 System.out.println(r2); System.out.println(r1); System.out.println(r4); //幂运算 2^3 2^2^2=8 很多运算会借助一些工具类来运算 //Math.pow()幂运算 double pow=Math.pow(3,2); System.out.println(pow); /* 运算符的优先级: 算数运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符 */ } }
-
-
包机制
package com.运算符.operator; public class Demo2 { //包机制 //包的本质就是文件夹 //一般利用公司域名倒置作为包名 //com.xxxx.www /* 定义包: 语法: Package pkg1[.pkg2[.pkg3]]; 导包: 语法:import package[.package2....].(classname|*); 导入所有包:例如:import com.*; */ }
-
JavaDoc
-
javadoc命令是用来生成自己的API文档
-
参数信息
-
@author:作者
-
@version:版本号
-
@since:指明需要最早使用的jdk的版本
-
@param:参数ming
-
@return: 返回值情况
-
@throws:异常抛出情况
package com.运算符.operator; //文档注释 /** * 参数信息 * * - @author:作者 * - @version:版本号 * - @since:指明需要最早使用的jdk的版本 * - @param:参数ming * - @return: 返回值情况 * - @throws:异常抛出情况 */ public class Demo3 { String name; /** * * @param name * @return * @throws Exception */ public String test(String name) throws Exception{ return name; } //利用cmd 生成javadoc文档的方法: /* javadoc -encoding UTF-8 -charset UTF-8 HelloWord.java -encoding UTF-8 -charset UTF-8 :编码格式 HelloWord.java:类名 */ }
-
-