目录
From 20211125
环境变量
卸载jdk
- 删除Java的安装目录
- 删除 JAVA_HOME
- 删除path下关于java的目录
- java –version
安装jdk
环境变量:新建JAVA_HOME
修改系统变量中的 Path,添加
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
测试:java–version
数据类型
基本数据类型(Primitive Type)
数值类型
整数类型:
byte 1个字节,范围:-128-127
short 2个字节,范围:-21768-32767
int占4个字节,范围:-21亿多-21亿多
int i=010; -- //八进制
int i2=0x10; --//十六进制
long 占8个字节,范围很大long num=30L;
浮点类型:
float 占4个字节:floatnum=50.1F;
有舍入误差,最好完全避免使用浮点数进行比较
(BigDecimal数学工具类,银行业务使用)
double 占8个字节
字符类型:char 占2个字节
boolean类型
占1位,其值只有 true 和 false 两个
引用数据类型(Reference Type)
类,接口,数组
类型转换
从低到高
Byte, short, char ->int -> long -> float ->double
强制转换: (类型)变量名高到低
自动转换:低到高
布尔类型是不能进行转换的,转换的时候可能出现内存溢出,也可能出现精度问题
//jdk7 新特性,数字之间可以用下划线分割:
int money = 10_0000_0000;
int years=20;
int total=money*years;
long total2=money*years;
long total3=money*((long)years); //正确
变量
public class Damo01 {
//类变量,static 修饰,调用是不用new对象再使用
static double salary=30000;
//属性:变量
//实例变量:从属于对象,如果不赋值,自行初始化为这个类型的默认值:0,0.0,
//布尔值默认为false
//除了基本类型,其他的默认值都是null
String name;
intage;
public static void main(String[] args) {
//局部变量,必须声明和初始化值
inti=10;
System.out.println(i);
Damo01 d01 = new Damo01();
System.out.println(d01.name);
System.out.println(salary);//如果salary 定义时不加static,此处不可使用
}
}
常量
public class Damo02 {
//final 修饰,一般用大写字母
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
运算符
回忆:Instanceof
取余数 %
//幂运算
doublecalResult= Math.pow(3,2);
位运算
a=0011 1100;
b=0000 1101;
a&b=0000 1100;
a|b=0011 1101;
a^b=0011 0001;
~b=1111 0010;
--------------------
2*8 2*2*2*2
效率极高!
<< *2
>> /2
System.out.println(2<<3); --16
-------------
inta=10;
intb=20;
System.out.println(""+a+b); --1020
System.out.println(a+b+""); --30
一般使用公司域名倒置作为包名:
www.baidu.comcom.baidu.www
在文件的最上面
packagecom.kuangstudy.www;
明确导入其他包,用 import语句
importjava.util.Date;
importcom.kuang.*
参考《阿里巴巴Java开发手册》
JavaDoc
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param参数名
- @return 返回值情况
- @throws 异常抛出情况
packagecom.kuangstudy.www;
/**
* @author kuangshen
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author kuangshen
* @paramname
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
cmd中执行:
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
Idea生成javadoc
tool>> Generate JAVADoc
Other command line arguments 其他参数:-encoding UTF-8 -charset UTF-8
鸣谢【https://blog.csdn.net/qq_29347295/article/details/78635861】
Scanner
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
System.out.println("has hasNext() 方法获取输入");
if (scanner.hasNext())
{
String str= scanner.next();
System.out.println("input is:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯,用完就关闭
scanner.close();
/* next()
1.一定要读取到有效字符后才可以结束输入
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
3.只有输入有效字符后才将其后面数据的空白作为分隔符或者结束符
4.next()不能得到带有空格的字符串
*/
}
public static void main(String[] args) {
Scanner scanner1 = new Scanner(System.in);
System.out.println("has hasNextLine() 方法获取输入");
if (scanner1.hasNextLine()){
String str1 = scanner1.nextLine();
System.out.println("input is:"+str1);
}
//等价于 String str1 = scanner1.nextLine();
scanner1.close();
/* nextLine()
* 1.以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
* 2.可以获得空白。
* */
}
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
double sum =0;
intm =0;
System.out.println("请输入数字,以非数字加回车退出");
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
sum = sum +x;
m = m+1;
}
System.out.println(m +" 个数的和为:"+sum);
System.out.println(m+" 个数的评价值为:"+(sum/m));
scanner.close();
}
//判断字符串String是否相等,用equals()
if(str.equals("Hello")){
System.out.println("right!");
}
Switch多选择结构
Swticht语句中的变量类型可以是
- byte,int,short或者char
- 从Java SE7 开始switch 支持字符串String类型了,同时case标签必须为字符串常量或字面量。之所以支持String,反编译class文件发现,比较时是用了哈希值进行的比较。
- pblic static void main(String[] args) { //case穿透(不写 break), switch 匹配具体的值 char grade = 'A