Java基础01:注释(书写注释是一个非常好的习惯) 单行注释 // //输出一个Hello world 多行注释 / / /*
多行注释多行所行
*/ 文档注释 /** *java doc *java doc *java doc */ Java基础02:标识型和关键字 重要Java关键字列表 abstract:它利用计算机来完成抽象。它是与类和方法相关的非访问修饰符。
enum:它利用Java描述enum。
instanceof:它用于知道对象是否是预定义写入(类、子类或接口)的情况。
private:它是一个访问修饰符。任何被宣布为私有的东西都不能在其类外看到。
protected:如果您需要使组件能够在当前类之外查看,那么,只需对特定于您的类的子类进行查看,此时将宣布该组件。
public: 任何人从任何地方都可以到达的地方。
访问修改函数 static:它用于使成员(块、方法、变量或嵌套类)可以独立于任何其他成员使用,而无需参考特定情况。
strictfp:用于限制、浮点、浮点运算和计算,并在浮点变量中执行任务时保证每个阶段的结果相同。
synchronized:它用于在Java中获得适用于块和方法的同步。
transient:作为序列化的一部分使用的因子修饰符。在序列化的季节,如果我们不想对记录中的特定变量进行多余的估计,那么此时,我们使用transient关键字。
volatile:如果修饰符告诉编译器,由不稳定变量调整的变量通过程序的不同部分发生惊人的变化,则使用volatile。
Java关键字的类型 Enum Enum有效地表示编程语言中命名常量的集合。例如,一副扑克牌中的四套西服可能有四个名为Club、Diamond、Heart和Spade的统计员,其中一个位置有一个名为西服的已识别类别。不同的插图结合了正常识别的构图(如行星、一周中的几天、色调、方位等)。
当我们在编译时知道每一个可能的值时,JavaEnum就可以利用它。例如,这可能包括菜单上的决策、调整模式、召唤线横幅等。枚举写入中常量的排列永远保持不变并不重要。
Strictfp关键字 strictfp是Java中的一个关键字,它利用限制浮点值,并在执行滑行点变量中的任务时保证每个阶段的结果相同。
浮点计算从属于平台,即当类文档在各种平台(16/32/64位处理器)上运行时,不同的输出(浮点变量)完成。为了解决这类问题,根据IEEE754滑行点计数指南,以JDK1.2的形式提出了strictfp口号。
Strictfp的重要关注点: Strictfp修饰符按原样使用类、接口和技术。
Strictfp无法使用独特的策略。尽管如此,它还是利用了理论类/接口。
由于接口的技术当然是动态的,strictfp不能与接口内的任何方法一起使用。
标识符注意点 所有标识符都应该以字母,或者美元符号($)或者下划线(_)开始 不能使用关键字作为变量名或者方法名 大小写非常敏感 不能以数字或者其他符号开头 可以使用中文名和拼音,但是不建议使用,不方便后期维护 Java基础03:数据型和关键字 基本数据类型 整数类型 byte 占1个字节(8位)
short 占2个字节(16位)
int 占4个字节(32位)
long 占8个字节(64位)
浮点数类型 float 4字节
double 8字节
字符类型 char 2字节
Boolean类型 1位:true false
public class demo02 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int num3 = 40;
long num4 = 100L; //Long 类型要在数字后加个L
//小数:浮点数
float num5 = 50.1F; //float 类型要在数字后加个F
//字符
char name = 'A';
char name3 = '张';
//字符串
String name2 = "张三";
//布尔类型
boolean flag = true;
}
} Java基础04 数据类型扩展及面试题 最好完全避免使用浮点数进行比较!!!!!!!! public class demo03 {
public static void main(String[] args) {
//整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//===================================================================
//浮点数拓展
//===================================================================
//float: 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f = 0.1f;
double d = 0.1;
System.out.println(f==d); //判断是否相等 :false
System.out.println(f);
System.out.println(d);
//字符
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1); //强制转换,将a转化为数字
System.out.println(c2);
System.out.println((int) c2); //强制转换
// 所有字符本本质还是数字
//转义字符
// \t 制表符
// \n 换行
}
} Java基础05 类型转换 运算中,不同类型的数据先转换为同一类型,然后进行运算。
从低到高位数据类型:byte 、short、char—>int—>long—>float—>double
public class demo05 {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i; //强制转换
System.out.println(i);
System.out.println(b); //溢出
}
} 强制转换 (类型)变量名 高—>低位
自动转化 低—>高位
注意点: 不能对布尔值进行转换 不能把对象类型转换为不想干的类型 在把高容量转换到低容量的时候,强制转换 转换的是时候可能存在内存溢出,或者精度问题!!!!!!!! public class demo05 {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i; //强制转换
System.out.println(i);
System.out.println(b); //溢出
System.out.println((int)23.7); //double类型 23
System.out.println((int)-45.89f); //浮点数类型 -45
char c = 'a';
int d = c+1;
System.out.println(d); //98
System.out.println((char) d); //b
}
} public class demo06 {
public static void main(String[] args) {
// 操作比较大的数字的时候,注意溢出的问题
// JDK7 新特性,数字之间可以用下划线分割
int money = 10_0000_0000L; //Long 类型要在数字后加个L
int years = 20;
int total = money*years; //-1474836480 ,计算的时候已经溢出了
long total2 =money*years; //默认是int类型,转换之前就已经存在问题了
long total3 = money*((long)years); //需要把years转换为long类型
System.out.println(total3);
}
} Java基础06:变量、常量、作用域 类变量
实例变量
局部变量
public class demo08 {
// 实例变量,从属于对象;如果不进行初始化,这个类型的默认值 0 0.0
// 布尔值默认为false
//除了基本类型,其余的类型默认值为null
String name;
int age;
//类变量
static double salary = 2500;
//main方法
public static void main(String[] args) {
//局部变量;使用前必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字= new demo08();
demo08 demo08 = new demo08();
System.out.println(demo08.age); // 0
System.out.println(demo08.name); // null
//类变量
System.out.println(salary);
}
//其他方法
public void add(){
}
} 常量:设置之后不可再更改
常量修饰符: final
public class demo09 {
//常量修饰符: final
//修饰符,不存在先后顺序
static final double PI = 3.1415926;
public static void main(String[] args) {
System.out.println(PI);
}
} 命名规范 见名知意 类成员变量: 首字母小写和驼峰原则:monthSalary 除了第一个单词意外后面单词首字母大写。 局部变量:首字母小写和驼峰原则 常量:大写字母和下划线 MAX_VALUE 类名:首字母大写和驼峰原则:Man,GoogMan 方法名:首字母大写和驼峰原则:run(),runRun() Java基础07运算符 算术运算符 +、-、*、/、%、++、--
赋值运算符 =
关系运算符 >、<、>=、<=、==、!=、instanceof
逻辑运算符 && || ! (与或非)
位运算符
条件运算符
拓展运算符
package operator;
public class demo1 {
public static void main(String[] args) {
//2元运算符号
//CTRL + D 复制当前行到下一行
int a = 10;
int b = 20;
int c = 30;
int d = 40;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b); //可能产生小数,强转成double
}
} package operator;
public class Demo02 {
public static void main(String[] args) {
long a = 12345678946545L;
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 没有long类型,数据类型自动转为int类型,除非强转成double
}
} package operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符号
int a = 10;
int b = 20;
int c = 21;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a); //取余运算,模运算
}
} Java基础08 自增自减运算符、初识math类 package operator;
public class Demo04 {
public static void main(String[] args) {
// ++ -- 自增、自减运算符
int a = 3;
int b = a++; // a = a +1 先赋值,再自增
System.out.println(a); // a = 4;
int c = ++a; // ++a a = a + 1; 先自增,再赋值
System.out.println(a);
System.out.println(a);
System.out.println(b);
System.out.println(b);
System.out.println(c);
System.out.println(c);
//幂运算 2^3 2*2*2 = 8
double pow = Math.pow(2,3);
System.out.println(pow);
}
} Java基础09 逻辑运算符、位运算符 package operator;
public class Demo05 {
public static void main(String[] args) {
// 逻辑运算符 && || !
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)); // 如果为真,则为假;如果为假,则为真。
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4); // c<4 为false ,不运行c++ ,结果最后还是c = 5;
System.out.println(c);
System.out.println(d);
}
} package operator;
public class Demo06 {
public static void main(String[] args) {
/*
* 位运算
* A = 0011 1100
* B = 0000 1101
*
* A&B = 0000 1100
* A|B = 0011 1101
* A^B = 0011 0001 //异或 相同取0,不同取1
* ~B = 1111 0010 //取反
*
* 2*8 = 16 2*2*2*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);
}
} Java基础10 三元运算符及小结 package operator;
public class Domo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; // a=a+b
a-=b; // a=a-b
System.out.println(a);
//字符串连接符 + ,string
System.out.println(""+a+b); // 1020 其中的“+”是字符串连接符
System.out.println(a+b+""); // 30 其中a与b之间的“+”是运算符,b后面的的“+”是字符串连接符
}
} package operator;
public class Demo08 {
public static void main(String[] args) {
//三元运算符
// x ? y :z
//如果 x==true ,则结果为y,否者为z
int score = 80;
String Type2 = score < 60 ? "不及格":"及格";
System.out.println(Type2);
}
} Java基础11 包机制 包的本质就是一个文件夹()
一般利用公司域名倒置作为包名:com.luomoe.base
package com.baidu.base; //包
import com.baidu.base.demo03; //引入 import com.baidu.base.*; //引入 包内所有的类 Java基础12 JavaDoc生成文档 javadoc 命令是用来生成自己的API文档 /** 然后回车 /**
cmd命令(生成web文档)
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
使用IEDA生成javadoc文档
(1)打开 idea,点击 Tools–> Generate JavaDoc,会弹出生成JavaDoc文档的配置页面。
(2)进行参数配置
(3)在输出目录里生成JavaDoc。