JAVA学习笔记
电脑快捷键命令
复制 ctrl+c
粘贴 ctrl+v
全选 ctrl+a
撤销 ctrl+z
打开我的电脑 win+e
打开资源管理器 ctrl+shift+esc
打开快速运行 win+r
打开CMD的方法
- win+r 输入CMD
- 在任意文件夹下面按住shift+鼠标右键,选择 > 在此处打开Powershell窗口
常用DOS命令
#盘符切换 输入盘符+:(英文冒号)
#查看当前目录下的所有文件 dir+回车
#在当前目录下切入当前目录下面的一个子目录
cd+空格+目录名
例:cd test
#切入指定目录 cd+空格+/d+空格+目录
例:cd /d d:test 切换至D盘里面的test文件夹下
#返回上一级目录cd+..
例:cd..
#清理屏幕 cls (clear screen)
#查看电脑IP ipconfig
#查询一个网站的IP ping www.baidu.com
#创建文件夹 md+空格+文件夹名字
例:md wow
#创建文件 cd+>+文件名字
例:cd>a.txt
#删除文件 del+空格+文件名字
例:del a.txt
#删除文件夹 rd+文件夹名字
例:rd wow
安装JDK
- https://login.oracle.com/
- 注册账号
- 主页最下面点击 Java se14 download
- 往下拉找到java se8 点击右侧JDK的JDK Download
- 下载完毕后安装 路径随便设置 并记住安装路径
- 配置环境变量
- 我的电脑---右键---属性---高级系统设置---环境变量
- 在系统变量栏里点击新建
- 变量名写成:JAVA_HOME
- 变量值写成:安装JDK时候所设置的安装目录
- 点击确定
- 回到系统变量栏,在系统变量栏里找到Path,点击编辑--新建
方法1.- 在新建里输入%JAVA_HOME%bin
- 再次在新建里输入%JAVA_HOME%jrebin
- 确定--确定--确定
方法2.
1.在新建里输入D:JAVAJKDbin 2.再次在新建里输入D:JAVAJKDjrebin 3.确定--确定--确定注释 经上测试,方法1配置完毕时失败,CMD下输入javac时显示不是内部命令,改为方法2时,则配置成功。
- 测试JDK是否安装成功
- 打开CMD
- 输入java+空格+-version
例:java -version
出现java version 版本号的信息就代表成功了
下载编写代码的工具NOTEPAD++
地址:https://notepad-plus-plus.org/downloads/
编写代码
- 创建代码文件夹
例:D:code> - 代码文件夹下新建文件
例:Hello.java - 使用notepad++打开文件Hello.java
- 输入代码(输入完成记得保存)
代码 public class Hello{ public static void main(String[]args){ System.out.print("Hello,World!"); } }
第一行public class Hello中的Hello开头是大写,则代码文件夹中的Hello.java的开头也一定要大写,否则用javac编译此文件的时候则会报错。由此可知,第一行public class后面所写的类名称要和文件本身的前缀名称完全一致。
所有代码的大小写必须一致,标点符号必须为英文输入法下的标点符号
编译代码
编译刚才所写的代码文件Hello.java
1. 运行cmd,并切入代码文件所在的目录
例:D:code>
2. 输入javac hello.java
> 此处的hello可以大写也可以不大写,如果代码输入无误,则会在代码文件所在的目录里自动生成一个Hello.class的文件
运行代码
运行刚才所编译的文件Hello.class
cmd下输入java Hello
> **经测试此处的Hello则必须为大写,否则无法运行,后缀名不用写,因为java程序默认运行class文件**
总结
由此看来,javac程序为编译软件,java程序为运行软件
安装IDE
下载
百度搜索IDEA或者直接进入官网:https://www.jetbrains.com/idea/download/#section=windows
右侧为免费版,初学者可以先用免费版。有纠错和代码命令提示功能。
中文汉化
安装到最后一步的时候右下角会出现一个齿轮状的圆圈,点击右下角 Configure 菜单,选择 Plugins。在弹出的 Plugins 窗口里,切换至 Marketplace Tab,以 chinese 当关键字搜索,第一个出现的就是 Chinese (Simplified) Language Pack EAP,点击 Install 后 Restart IDE 即可完成。
创建项目
安装完中文汉化包重启IDEA后会连续出现一些操作提示,直接点关闭就可以,然后会出跳出一个新建项目
如果你希望把以后写的代码放到D盘那就把目录选择为D,项目名称是一个文件夹,你起的名字就是项目的文件夹名称,以后写的代码都会自动在这个文件夹生成,包括编译后的文件也会在这个文件夹生成,而目录位置也就是项目文件夹的位置。最后点击完成
创建代码文本
双击project,其中src文件夹里面是我们手动创建的代码文本,可以右键点击src点新建java类,然后系统会让你输入为这个代码文本起一个名字。我写的是Hello
编写代码
在编辑框内输入HelloWorld代码
编译并运行代码
点击编辑框左侧的绿色三角,选择运行"Hello.main",程序会编译并呈现编译后运行的结果。点击绿色三角,即,编译运行同时运行。
数据类型
public class HelloWorld {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1=10;
byte num2=20;
short num3=30;
long num4=30L;//long类型要在数字后面加个L
//小数:浮点数
float num5=50.1F;//float类型要在数字后面加个f
double num6=3.11551515;
//字符
char name='张';//就是单个字符的意思
//字符串
String name1="张恒畅";//就是多个单字符组成的多个字符串
//布尔值
boolean flag=ture;
浮点数
//======================================
//浮点数拓展 银行业务怎么表示钱?
//======================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//BigDecimal 如果要比较 就用这个类进行比较
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
float d1=23131312312312313f;
float d2=d1+1;
System.out.println(d1==d2);//true
字符拓展
//==========================================
//字符拓展
//==========================================
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换 转换后为97
System.out.println(c2);
System.out.println((int)c2);//强制转换 转换后为20013
//输出结果为
a
97
中
20013
//总结 所有字符的本质都是数字 System.out.println((int)c1)中的int可以把任何文字转换成二进制的计算机数字代码
//而把这些字符编程数字代码的是 Unicode 这个编码表
//转义字符
//t 空格
//n 换行
System.out.println("不t爱你");//输出结果为:不 爱你
System.out.println("不n爱你");//输出结果为:不
// 爱你
变量之间的转换
public class demo2 {
public static void main(String[] args) {
//由低到高的变量类型
//byte,short,char-->int-->long-->float-->double
//由于float和double是浮点数
//所以虽然字节小于long,但是优先级大于它们
int i=128;
//byte b=i;//直接转换会报错,因为不是一个级别的。所以应该如下转换:
byte b=(byte)i;//意思是 使i强制转换为byte类型的数值
System.out.println(i);//运行结果 128
System.out.println(b);//运行结果 -128
// 因为byte的数值最大支持127,所以内存溢出了
//强制转换 的情况 在由高到低转换的时候 会报错 需要实行强制转换
//自动转换 的情况 在由低到高转换的时候 为自动转换 而且不会报错
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,如果超过低容量的最大值,则会报错
4.转换的时候可能存在内存溢出 或 精度问题
*/
//精度问题 如下例所示:
System.out.println("============");
System.out.println((int)23.7);//运行结果 23
System.out.println((int)-45.89f);//运行结果 -45
System.out.println("============");
char c='a';
int d=c+1;
System.out.println(d);//运行结果 98
/*
因为把a字符转换为int整数类型时 会运用unicode编码把字符转换为数字97
而d=c+1,所以d=97+1=98
*/
System.out.println((char)d);//运行结果 b
/*
同上,得知d的运算结果为98
但是由于int d为高容量变量 在转换为低容量变量时 需要强制转换
而当插入强制转换符(char)的时候 由于char是一个字符串
所以会强制把本来运算出的数字98转换为字符串 也就是字母b
因为97是a,所以97+1就往后顺推一位得出b
*/
}
}
转换时溢出问题
public class demo3 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
int money=1000000000;
//JDK新特性 数字之间可以用下划线分割 且不会被输出
int mymoney=10_0000_0000;
System.out.println(mymoney);//运行结果1000000000
int years=20;
int total=money*years;
System.out.println(total);//运行结果 -1474836480 溢出
long total2=money*years;//数据已超出int的最大值 换做long试试
System.out.println(total2);//运行结果 -1474836480 溢出
/*
由于years和money都被定义为了int,所以在计算total2的时候计算机是用
int*int来计算的,得出的数据还是Int类型,由于超出int的最大值,所以
数值为负数,而再次把这个溢出的数值(负数)转换为更大的容量L时,则得出的
还会是溢出值(负数)
*/
long total3=money*((long)years);//让int*long=long
/*
由于int*long=long,所以,只需要把相乘的两个数字类型的其中一个类型
改为更大容量的long则不会超出最大值,也就不会溢出。所以在years前面
插入"(long)"则表示,把years的数值转换为long的类型,由于是低转高,
这个就属于自然转换。
*/
System.out.println(total3);//运行结果 200亿
}
}