Java基础
Java基础
Java特性:
简单,OOP,分布式,健壮,安全,体系结构中立,可移植,解释型,高性能,多线程,动态
多线程:通常是两种方式:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
1. 注释
//1.单行注释
//输出一个Hello,World!
//2.多行注释 /* 注释 */
/*
我是多行注释
*/
//3.文档注释
/**
* @Description: Hello,World!
* @Author:暖神,xx company
*/
-
IDEA调节字体颜色
File-->settings-->Editor-->Color Scheme-->Java-->Comments-->Block comments,JavaDoc,Line comments

2. 标识符与关键字
- Java所有的组成部分都需要名字,类名,变量名以及方法名都被成为标识符
- 标识符注意点:
- 首字母:A-Z,a-z,$,_
- 首字母之后:A-Z,a-z,$,_,数字
- 关键字不能作标识符
- 大小写敏感
- 中文变量名可用,但尽量不用
3. 数据类型
-
强类型语言:要求变量的使用严格符合规定,所有变量都必须先定义后才能使用
弱类型语言
-
java分为基本数据类型和引用类型
- 基本数据类型:数值类型和布尔类型
- 数值类型:整数类型,浮点类型和字符类型
- 整数类型:byte1,int4,short2,long8
- 浮点类型:float4,double8
- 字符类型:char2
- 布尔类型:true和false.占1位
- 数值类型:整数类型,浮点类型和字符类型
- 引用类型:class,interface,arraylist
- 基本数据类型:数值类型和布尔类型
// 1. 整数 有取值范围
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//后面加L表示使用long类型定义
// 2. 浮点类型
float f = 50F;
double d = 60;
// 3. 字符类型
char c = '神';
// 字符串 String不是关键字, 内置类
//String str = "暖神";
// 4. 布尔类型
boolean flag = true;
//boolean flag = false;
4. 数据类型扩展
-
整数扩展
// 1. 整数扩展 int i1 = 0b10;//二进制 int i2 = 010;//八进制 int i3 = 0x10;//十六进制 -
浮点数扩展
// 2. 浮点数扩展 //(1)float 有限 离散 舍入误差 接近但不等于 //double /** * (2)最好完全避免使用浮点数进行比较 */ //(3)银行业务-->钱 //BigDecimal 数学工具类 float f = 0.1f; double d = 1.0/10; System.out.println(f==d);//flase float f1 = 23135413465431f; double d1 = f1+1; System.out.println(f1==d1);//true -
字符扩展
// 3. 字符扩展 char a1 = 'a'; char a2 = '神'; System.out.println(a1); System.out.println((int)a1);//强制类型转换 System.out.println(a2); System.out.println((int)a2);//强制类型转换 //所有字符本身还是数字 //Unicode(范围U0000-UFFFF) 表:(a=97,A=65) 2字节 0-65536 Excel 2 16次方 char c = '\u0061'; System.out.println(c);//a -
转义字符
转义字符 意义 \n 换行 \t 制表符 \r 回车 \v 垂直制表 \\ 代表一个反斜线'\' \b 退格 -
比较地址和值
// 5.比较地址和值 String str1 = new String("hello world"); String str2 = new String("hello world"); System.out.println(str1==str2); String str3 = "hello world"; String str4 = "hello world"; System.out.println(str3==str4); //对象 从内存分析 -
布尔值扩展
// 6.布尔值扩展 boolean flag = true; if (flag=true){} if (flag){}//推荐 //less is More.代码要精简
5. 类型转换
-
强制类型转换:(类型)变量名,高-->低
自动类型转换:低-->高
int i =128; byte b = (byte)i;//内存溢出 System.out.println(i); System.out.println(b); -
注意:
- 不能使用布尔值转换
- 不能把对象类型转为不相干的
- 把高容量转换到低容量为强转
- 转换可能存在溢出或精度问题
-
ep:
//数值计算过大,要注意内存溢出问题 //jdk7特性,数字可用下划线分割 int money = 10_0000_0000; int years = 20; int total = money*years;//已经出现溢出问题 long total2 = money*years;//转换之前及出现问题 long total3 = money*((long)years);//把其中一个改成long类型 System.out.println(total3);
6. 变量,常量,作用域
-
变量:
- Java属于强类型语言,v必须声明类型
- Java v属于最基本的存储单元,三要素:varNmae,varType,作用域
- 注意事项:
- v都有类型,基本类型/引用类型
- varName是合法标识符
- v的声明是完整语句,结尾加;
-
变量分类
- 类变量:static,可在main方法中直接调用
- 实例变量:从属于对象,未赋予初始值时,使用默认值
- 数字类型默认0 0.0
- 布尔类型默认false
- 其他类型默认null
- 局部变量:必须声明和初始化值
-
常量:一旦规定不可更改
final static double PI = 3.14; -
v命名规范
-
变量,方法,类名要求见名知意
-
类成员v,局部v,方法名:首字母小写和驼峰原则.
lastName,monthSalary,run(),runRun()
-
常量:大写字母以及下划线.MAX_VALUE
-
类名:首字母大写和驼峰原则.Man(),GoodMan()
-
//类变量:static
static double salary = 2500;
//实例v:从属于对象,没有给定初始值,基本默认0 0.0,布尔默认false,其他默认null
int age;
String name;
//常量:修饰符static不存在先后
final static double PI = 3.14;
//static final double PI = 3.14;
//main方法
public static void main(String[] args) {
//局部v
int i = 10;
String str = "鸣人";
System.out.println(i);
System.out.println(str);
//vtype vname = new classname;
Demo6 demo6 = new Demo6();
System.out.println(demo6.age);
System.out.println(demo6.name);
System.out.println(salary);
System.out.println(PI);
}
7. 运算符
-
Java运算符
-
Java运算符优先级
优先级 运算符 综合性 1 () [] 从左到右 2 ! +(正) -(负) ~ ++ -- 从右到左 3 * / % 从左到右 4 +(加) -(减) 从左到右 5 << >> >>> 从左到右 6 < <= > >= instanceof 从左到右 7 == != 从左到右 8 &(按位与) 从左到右 9 ^ 从左到右 10 | 从左到右 11 && 从左到右 12 || 从左到右 13 ? : 从右到左 14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右到左
//++ --自增 自减 一元运算符 int a = 3; int b = a++; System.out.println(a);//先赋值后++ int c = ++a;//先++后赋值 System.out.println(a); System.out.println(b); System.out.println(c); //幂运算 2^3=8 2*2*2=8 double pow = Math.pow(2, 3);//自动补齐ctrl+alt+v System.out.println(pow); -
-
短路运算
int c = 5; boolean d = (c<4)&&(c++); System.out.println(c); System.out.println(d); -
位运算符
/* A = 0011 1100 B = 0000 1101 ------------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~B = 1111 0010 << *2 >> /2 0000 0010 2 0000 1000 8 0001 0000 16 */ -
条件运算符
//(1)字符串连接符 +,String int a = 10; int b = 20; System.out.println(""+a+b); System.out.println(a+b+""); //(2)三目运算符 ? : score = 80; String state = score < 60?"不及格":"及格" System.out.println(state);
8. 包机制
一般使用公司域名倒置作为包名
//*是通配符,代表导入该包下所有类
import package.(classname|*)
Ctrl+鼠标左键可以点击跳转到包下
9. JavaDoc
- javadoc命令是用来生成个人API文档
/**
* @author 作者
* @version 版本号
* @since 初始jdk版本号
*/
public class Doc {
String name;
/**
*
* @param 参数名
* @return 返回值
* @throws 异常情况
*/
public String test(String name) throws Exception{
return name;
}
}
-
cmd命令行输出javadoc文档
javadoc -encoding UTF-8 -charset UTF-8 Doc.java-
查找IDEA生成JavaDoc文档
-
1

-
2

- 选择项目或指定文件
-
-
- 输出路径
- Locale 选择地区,中文就是zh_CN - 传入JavaDoc的参数, -encoding UTF-8 -charset UTF-8 -windowtitle “标题” -link http://docs.Oracle.com/javase/7/docs/api

浙公网安备 33010602011771号