Java基础
Java基础
基本的DOS命令
#查看目录下的所有文件 dir
#切换目录 cd (change directory) 进入内需要添加参数,比如/d cd..返回上级目录
#清理屏幕 cls (clear scree)
#退出终端 exit
#查看电脑ip ipconfig
#打开应用
calc
mapaint
notepad
#ping 命令
ping www.baidu.com
#文件操作
md 目录名
rd 目录名
cd> 文件名
del 文件名
idea快捷键
#ctrl + D 复制当前行到下一行
#ALT + ENTER 自动识别缺少包类型
java的一些介绍
#jdk java development kit
#jre java runtime environment
#jvm java virtual machine
java新建
- 随便新建一个文件夹
- 新建一个java文件
- 文件后缀名为.java
- Hello.java
- 如果系统没有打开我们需要手动打开
- 编写代码:
public class Hello{
public static void main(String[] args){
System.out.print("Hello World!");
}
}
注意点:这个类的名字要和文件名相同
- 编译javac java文件,会生成一个class文件
- 运行class文件,java class
插一个电脑自由截屏方法:win+shift+s,可以自由矩形截图到剪切板。win+w还可以进行编辑,同样可以保存。
可能出现的问题
- java大小写敏感的
- 尽量使用英文
- 文件名必须和类名保持一致
使用idea新建类
psvm 快速生成主函数
sout 快速生成输出
Java注释
单行注释 //
多行注释 /**/
文档注释:java doc /**
*
*/
java doc格式可以自己设置,在下图
Java八大数据类型
//整数
byte num1 = 10;
int num2 = 20;//最常见
short num3 = 30;
long num4 = 40L;//Long类型要在数字后边加个L
//小数,浮点数
float num5 = 50.1F;
double num6 = 301415926545;
//字符
char name = 'A';
//布尔值
boolean flag = true;
//boolean flag = false;
整数拓展
//整数的拓展
public class Demo {
public static void main(String[] args) {
//整数的拓展 二进制0b 八进制0 十进制 十六进制0x
int i = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
}
}
运行结果:
10
8
16
浮点数拓展
//浮点数拓展
public class Demo {
public static void main(String[] args) {
//浮点数拓展
float f = 0.1f;
double d = 1.0/10;
System.out.println(f == d);//false
float d1 = 26565145561561651f;
float d2 = d1 +1 ;
System.out.println(d1 == d2);//ture
}
}
/*
运行结果:
false
true
*/
//解释:
//float 有限 离散 舍入误差 大约 接近但不等于
//最好完全不要使用浮点数进行比较
//银行业务表示 钱
//BigDecimal 数学工具类
字符拓展
public class Demo {
public static void main(String[] args) {
//字符拓展
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
//U0000 UFFFF
char c3 = '\u0061';
//转义字符
//所有的字符本质还是数字
/**结果如下
a
97
中
20013
a
*/
}
}
布尔拓展
boolean flag = true;
if (flag == true){};
if (flag){};
//Less is More!
额外拓展
public class Demo {
public static void main(String[] args) {
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);
String sc = "hello,world";
String sd = "hello,world";
System.out.println(sc == sd);
}
}
/* 输出结果:
false
true
*/
//对象 内存分析
java类型转换
低---------------------------------------------------->高
byte,short,char->int->long->float->double
浮点型大于整型
public class Demo {
public static void main(String[] args) {
int i = 128;
//强制类型转换 (类型)变量名 高-->低
byte b = (byte)i;//内存溢出
//自动转换 低-->高
double d = i;
System.out.println(i);
System.out.println(b);
System.out.println(d);
//强制转换的时候要注意精度和内存溢出问题
System.out.println((int)23.7);
//char优先级低于int
char c = 'a';
int d = c + 1;//自动转换
System.out.println(d);
System.out.println((char)d);//强制转换
//JDK7的新特性,数字可以用下划线分割
int money = 10_000_0000;
int years = 20;
int total = money*years;//-1474836405,计算溢出
long total_1 = money*years;//-1474836405,money和year类型都是int,默认都是int,转换之前已经存在问题了
long total_2 = money*((long)years);//20000000000,先把一个数转换成long
System.out.println(total);
System.out.println(total_1);
System.out.println(total_2);
//程序中l与L,加在数字后边都可以表示long类型,但是小写的l与1相似,所以默认为大写的L
}
}
/*
结果为:
128
-128
23
98
b
-1474836405
-1474836405
2000000000
*/
java变量、常量、作用域
变量
- 类变量:类变量 static 从属于类
- 实例变量:从属于对象;如果不进行初始化,这个类型的默认值为 0 0.0 u0000 false.除了基本类型,其他都是null
- 局部变量:必须声明和初始变化值,生命周期只存在于这个函数内
public class Demo {
//类变量 static
static double salary = 2500;
//实例变量:从属于对象;如果不进行初始化,这个类型的默认值为 0 0.0 u0000 false.除了基本类型,其他都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始变化值,生命周期只存在于这个函数内
int i = 0 ;
System.out.println(i);
//自定义的变量类型(类名) 变量名字 = new Demo;
Demo demo = new Demo();//相当于用Demo类型定义了一个demo,然后demo可以调用Demo里的东西
System.out.println(demo.age);//这样调用,输出了0
System.out.println(demo.name);//输出为null
System.out.println(salary);
}
public void add(){
return ;
}
}
常量
public class Demo{
//修饰符,不存在先后顺序,一半的常量,大写
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
- 所有变量、方法、类名:见名起意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_WALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
Java运算符
自加自减
public class Demo{
public static void main(String[] args) {
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,a再自增
//b赋完值就过,在这里a = a + 1;
int c = ++a;//执行完这行代码前,先自增,再给c赋值
//这一行,a先自增了,a = a + 1;然后再执行赋值给c
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//很多运算,会使用工具类来下
double pow = Math.pow(3, 2);
System.out.println(pow);//9.0
}
}
位运算
public class Demo{
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 全为1才为1
A|B = 0011 1101 有1就为1
A^B = 0011 1101 全为0才为0
~B = 1111 0010 取反
2*8 = 2*2*2*2
System.out.println(2 << 3);
位运算,效率极高!
<< *2
>> /2
*/
System.out.println(2 << 3);//16
}
}
条件运算符
public class Demo{
public static void main(String[] args) {
int a = 10;
int b = 20;
//字符串连接 +旁边有字符串,会按照字符串进行拼接
System.out.println("" + a + b);//1020,转换成了字符串进行拼接
System.out.println(a + b + "");//30,先进行了运算
//三元运算符
//x ? y : z
//如果x == true,则结果为y,否则为z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);//及格
}
}
包的导入
import com.juana.xxx.包名.*;//会把这个包下所有文件导入,需要注意命名方式不能重合
JavaDoc
-
javadoc命令是用来生成自己的API文档的
-
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
-
命令行生成javadoc文档:
-
命令行进入类目录,执行
-
//javadoc 参数 文件名 javadoc -encoding UTF-8 -charset UTF-8 文件名 // 编码 字符集编码 //中文有时候会乱码
-
-
idea里生成javadoc
-
Tools->Generate JavaDoc
-
-
参数说明:
- Whole project>>整个项目都生成 。
- Custom scope>>自定义范围,如下:project files 项目文件,project production files 项目产品文件,project test files 项目的测试文件, 未知范围,class hierarchy 类层
- include test source 包含测试目录
- include JDK and … 包含jdk和其他的第三方jar
- link to JDK documentation…链接到JDK api
- output directy 生成的文档存放的位置
- private、package、protected、public 生成文档的级别(类和方法)
- 右边的Generate…是选择生成的文档包含的内容,层级树、导航、索引..
- 再右边是生成的文档包含的内容信息,作者版本等信息
- Locale 语言类型,zh-CN
- Other command line arguments 其他参数
- Maximum heep… 最大堆栈
-
浙公网安备 33010602011771号