❤️💕💕java的学习指南,从入门到大师篇章。Myblog:http://nsddd.top
[TOC]
使用迅雷快速安装
链接:https://pan.xunlei.com/s/VNAihCUYSnMhn3o7A07lSt0oA1?pwd=n7bb# 提取码:n7bb
- 配置环境变量
C:\Users\smile>java -version
java version "1.8.0_331"
Java(TM) SE Runtime Environment (build 1.8.0_331-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.331-b09, mixed mode)
jshell类似于python中的
ipython
或者是Node中的node
,是一个交互式命令行工具
快速方式 | 说明 |
---|---|
在输入 Java 标识符、jshell 工具命令或 jshell 工具命令参数(在某些情况下)的前几个字母后,按 键可以完成输入。如果有多个输入提示,则将显示可能的输入提示。将显示可用的适用文档。 | |
Shift- v | 在完整的表达式后面,按住 的同时按下 ,然后释放并按 “ v ”,此时表达式将转换为其类型基于表达式类型的变量声明。 |
Shift- m | 完成表达式或语句之后,按住 的同时按住 ,然后释放并按住 “ m ”,则表达式或语句将转换为方法声明。如果是表达式,则返回类型基于表达式的类型。 |
Shift- i | 在不可解析的标识符后面,按住 的同时按下 ,然后释放并按 "i",此时 jshell 工具将会建议可能的导入项,这将基于指定类路径的内容解析标识符。 |
JShell 常用命令:
command | 说明 |
---|---|
/list [<名称或 id>|-all|-start] | 列出所有您键入的源 |
/edit <名称或 id> | 编辑键入的源 |
/drop <名称或 id> | 删除键入的源 |
/save [-all|-history|-start] < 文件 > | 将片段源保存到指定文件 |
/open | 打开文件作为源输入 |
/vars [<名称或 id>|-all|-start] | 列出已声明变量及其值 |
/methods [<名称或 id>|-all|-start] | 列出已声明方法及其签名 |
/types [<名称或 id>|-all|-start] | 列出类型声明 |
/imports | 列出导入的项 |
/exit [] | 退出 jshell 工具 |
/env [-class-path < 路径>][-module-path < 路径>][-add-modules < 模块>] | 查看或更改评估上下文 |
/reset [-class-path < 路径>][-module-path < 路径>][-add-modules < 模块>] | 重置 jshell 工具 |
/reload [-restore][-quiet][-class-path < 路径>][-module-path < 路径>] | 重置和重放相关历史记录 -- 当前历史记录或上一个历史记录 (-restore) |
/history [-all] | 键入的内容的历史记录 |
/help [|] | 获取有关使用 jshell 工具的信息 |
/set editor|start|feedback|mode|prompt|truncation|format | 设置配置信息 |
/? [|] | 获取有关使用 jshell 工具的信息 |
/! | 重新运行上一个片段 -- 请参阅 /help rerun |
/ | 按 ID 或 ID 范围重新运行片段 -- 参见 /help rerun |
/- | 重新运行以前的第 n 个片段 -- 请参阅 /help rerun |
jshell> System.out.pr
print( printf( println(
jshell> System.out.println("hello word!")
hello word!
加减
jshell> 10
$2 ==> 10
jshell> 29
$3 ==> 29
jshell> $2 + $3
$4 ==> 39
其他用法
jshell> 3 * 7
$1 ==> 21
| 已创建暂存变量 $1 : int
jshell> /!
3 * 7
$2 ==> 21
| 已创建暂存变量 $2 : int
jshell> int a;
a ==> 0
| 已创建 变量 a : int
jshell> /-1
int a;
a ==> 0
| 已修改 变量 a : int
| 更新已覆盖 变量 a : int
jshell> /-4
3 * 7
$5 ==> 21
| 已创建暂存变量 $5 : int
设置变量
jshell> var a = 120
a ==> 120
jshell> var b = 123142
b ==> 123142
jshell> a + b
$6 ==> 123262
Java 语言为每一个内置数据类型提供了对应的包装类。
所有的包装类**(Integer、Long、Byte、Double、Float、Short)**都是抽象类 Number 的子类。
包装类 | 基本数据类型 |
---|---|
Boolean | boolean |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Character | char |
Float | float |
Double | double |
ava 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
public class E{
public static void main(String[] args) {
System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
System.out.println("0度的余弦值:" + Math.cos(0));
System.out.println("60度的正切值:" + Math.tan(Math.PI/3));
System.out.println("1的反正切值: " + Math.atan(1));
System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));
System.out.println("PI = "+Math.PI);
}
}
编译:
90 度的正弦值:1.0
0度的余弦值:1.0
60度的正切值:1.7320508075688767
1的反正切值: 0.7853981633974483
π/2的角度值:90.0
3.141592653589793
1.普通的直接引用
这种就不用讲了,this 相当于是指向当前对象本身。
2.形参与成员名字重名,用 this 来区分:
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年龄:"+age);
}
public int GetAge(int age){
this.age = age;
return this.age;
}
/* public int GetAge(int ages){
age = ages;
return age;
}
*/
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}
3.引用构造函数,和super一起
super 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
super 也有三种用法:
1.普通的直接引用
与 this 类似,super 相当于是指向当前对象的父类,这样就可以用 super.xxx 来引用父类的成员。
2.子类中的成员变量或方法与父类中的成员变量或方法同名
class Country {
String name;
void value() {
name = "China";
}
}
class City extends Country { //子类继承父类
String name;
void value() {
name = "Shanghai";
super.value(); //调用父类的方法
System.out.println(name); //Shanghai
System.out.println(super.name); //父类的名字 -- China
}
public static void main(String[] args) {
City c=new City();
c.value();
}
}