java基础
关键字
![image-20200930160552503](https://i-blog.csdnimg.cn/blog_migrate/cfb3e16dd00cd0cd316c7502648304c4.png)
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算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
命名规则
所有命名规则必须遵循以下规则:
1.名称只能由字母、数字、下划线、$符号组成
2.不能以数字开头
3.名称不能使用JAVA中的关键字。
4.坚决不允许出现中文及拼音命名。
java中的类、方法、属性的命名规范
https://blog.csdn.net/pan_ye/article/details/79461958
1.见名知意 :比如我要定义一个学生类,应该是class Student{},而不是class S{}
2.对于类或者接口 : 一个单词的话首字母必须大写,多个单词的话每个单词的首字母必须大写
比如:Student,常见的HelloWorld
3.对于方法或者变量:一个单词的时候全部小写,多个单词的话除第一个单词首字母小写,其他单词首字母都大写
比如:mian方法,setStudentAge()等
4.对于常量 : 一个单词的常量需要所有字母大写,多个单词的话所有字母都需要大写,单词之间用_隔开
比如:PI , STUDENT_MAX_AGE;
5.对于包的命名 所有单词都小写,如cn
public class Demo01 {
//正确命名
String Aname = "ceshi";
String aname = "ceshi";
String $name = "ceshi";
String _name = "ceshi";
//大小写敏感
String Man = "ceshi";
String man = "ceshi";
//错误命名
//String 4name = "";
//String %name = "";
//String class = "";
}
数据类型
测试
public class Demo02 {
//八大基本数据类型
int num1 = 10;
byte num2 = 127;
short num3 = 50;
long num4 = 60L; //后面需要加L
//小数: 浮点数
float num5 = 20.1F;//后面需要加F
double num6 = 12.2645455;
//字符
char a = 'A';
//错误,只能写一个汉字
//char b = "测试";
//布尔值
boolean flag = true;
}
public class Demo03 {
public static void main(String[] args) {
//整数拓展 进制 二进制ob 十进制 八进制0 十六进制0x
int i = 10;
int m = 010; //0
int n = 0x10; //十六进制0x 0-9 A-F
System.out.println(i);
System.out.println(m);
System.out.println(n);
System.out.println("=============================");
float f = 0.1f;
double f1 = 1.0/10;
//false,float是有限的,接近但不等于,少用浮点数比较,应该使用BigDecimal数学工具类
System.out.println(f==f1);
float m1 = 564564564114f;
double m2 = m1+1;
System.out.println(m1==m2); //true
System.out.println("=============================");
char a= 'a';
char b= '我';
System.out.println(a);
System.out.println((int)a);
System.out.println(b);
System.out.println((int)b);
//所有字符本质还是数字
// 编码 unicode编码,一个字符对应一个数字,(97=a,65=A) 0-65536
// U0000 UFFFF
char c = '\u0061';
System.out.println(c); //a
System.out.println("=============================");
//转义字符
// \t制表符
// \n换行
System.out.println("Hello\nWorld");
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VUmyAI9I-1601543836604)(https://i.loli.net/2020/10/01/fROCSTk4M2xyVPl.png)]
类型转换
1. 强制转换形式: (类型)变量名
2. 从高->低,需要强制转换
3. 从低->高,自动转换
4. 不能对boolean值进行转换
5. 两个不相干的类型不能进行转换
6. 转换的时候可能存在内存泄漏或精度问题
import java.sql.SQLOutput;
/**
* @author hcc
* @date 2020-09-30 20:04
* @description
*/
public class Demo04 {
public static void main(String[] args) {
int i = 128;
int m = 125;
//强制转换 (类型)变量名 高->低
byte j = (byte)i; //[-128,127] ,内存溢出
//自动转换 (类型)变量名 低->高
double n = m;
System.out.println(i);
System.out.println(j);
System.out.println(n);
System.out.println((int)23.6);
System.out.println((int)25.89f);
/*
注意点:
1.不能对boolean值进行转换
2.两个不相干的类型不能进行转换
3.从高到低时,需要进行强制转换
4.转换的时候可能存在内存泄漏或精度问题
*/
System.out.println("===============================");
//操作比较大数的时候,注意溢出问题
//jdk1.7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int year = 20;
int total = money*year; //-1474836480,溢出
long total2 = money*year; //默认int,转换之前已经存在问题
System.out.println(total);
System.out.println(total2);
//解决办法
long total3 = money*(long)year; //先转换一个数为long
System.out.println(total3);
}
}
变量
public class Demo05 {
//int a=1,b=2,c=3; //可读性差,不建议使用
String name = "test";
char v = 'V';
Double pi = 3.14;
}
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Demo06 { //类变量 static static double f = 113; //常量,final和statics是修饰符,不区分前后 final static Double PI = 3.14; //实例变量:从属于对象,如果不初始化,会有默认值 //数类型:0 0.0 //布尔值:默认false //除了基本类型外,其余默认值都是false String name; int i; public static void main(String[] args) { //局部变量,必须声明和初始化值,只在最近的大括号内有效 int i = 10 ; System.out.println(i); Demo06 demo06 = new Demo06(); System.out.println(demo06.name); System.out.println(demo06.i); System.out.println(f); System.out.println(PI); } }