首先我们打开JDK的官网:传送门,https://www.oracle.com/java/technologies/downloads/
进去之后,我们往下面翻,找到这里
根据你们自己的电脑进行安装,安装我就不演示了,直接无脑的点下一步,然后算个安装路径就行了
安装好后打开你的安装目录,点开bin目录然后复制上面的路径,然后去添加一下环境变量即可
然后再打开cmd,输入
javac -version
首先打开IDEA的官网:传送门 https://www.jetbrains.com/idea/download/#section=windows
然后点击Download,下什么版本随你。下载好后运行。
然后有一个重点就是这里
这几个全选,那个32位的64位的应该没有(我懒得重装了,这是找的网图)
剩下几个都是选next,然后等待安装就行了
按好了之后,可能要重启,也可能不要,我们直接双击,打开,新建一个项目
然后他会自动生成着一些文件:
我们所有的Java文件都要放在这个src文件夹里
如果你也想让你的IDEA和我一样好看的话,就请看这篇文章:传送门
下面我们就开始正式的教学
public class hello{
}
我们把它改成:
public class hello{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
运行结果:
记住,Java跟Python一样,所有的符号都要是英文的!!!
在Java中有两种注释分别是://
public class hello{
public static void main(String[] args) {
System.out.println("Hello World!"); // 我是注释
}
}
还有:/**/
public class hello{
public static void main(String[] args) {
/*
我也是注释
*/
System.out.println("Hello World!");
}
}
// 是单行注释,/**/是多行注释
数据类型 关键字 内存占用 取值范围
byte 1 -128 ~ 127
整数 short 2 -32768 ~ 32767
int 4 -2的31次方 ~ 2的31次方-1
long 8 -2的63次方 ~ 2的63次方-1
====================================================================================
浮点数 float 4 负数:-3.402823E+38 ~ -1.401298E-45
正数: 1.401298E-45 ~ 3.402823E+38
double 8 负数:-1.797693E+308 ~ -4.9000000E-324
正数: 4.9000000E-324 ~ 1.797693E+308
====================================================================================
字符 char 2 0 ~ 65535
====================================================================================
布尔 boolean 1 true, false
说明:E+38表示是乘10的38次方, 同样, E-45表示乘10的负45次方
变量就是在程序运行过程中,其值可以发生改变的量
从本质上讲,变量是内存中的一小块区域
创建变量的语法:
type name = value
举例:
int My = 2;
我们可以直接输出:
public class test_1 {
public static void main(String[] args) {
int My = 2;
System.out.println(My);
}
}
注意:Java中的变量只能以字母,下划线为开头,不可以以数字作为开头,而且不能和Java关键字相同
比如说:class就不能作为一个变量,但Class可以
把一个表示数值范围小的数值或者变量赋值给另一个表示数据范围大的变量
范例:double d = 10;
表示数据范围从小到大图
byte ---> short------|
int --- long --- float --- double
char------|
格式:目标数据类型 变量名 = (目标数据类型)之后这变量
范例:
int k = (int)88.88
符号 作用
+ 加
- 减
* 乘
/ 除 结果取商
% 取余 结果取余数
字符串就是由一堆字符组成的但在Java中我们一般都用char在Python中用string
那字符串的+操作是什么呢,就是把两个字符拼在一起,比如说:
char a = 'A'
char b = 'B'
System.out.println(a + b);
(这里我就不写完整代码了)
然后输出
我们看到输出的结果是131,这是为什么呢,我们本来想的是输出AB对吧
可在计算机运行的时候,他是把他当作一个数值来进行运算的
学过C/C++应该都知道,这是ascall码,在ascall码中,大写的A代表65,B就是66,那两个一相加不就是131么。
但是,字符不能和其他类型的数据相加,不然会报错:
但输出的时候还是可以的:
符号 作用 说明
= 赋值 a=10,将10赋给变量a
+= 加后赋值 a+=b,将a+b的值给a
-= 减后赋值 a-=b,将a-b的值给a
/= 除后赋值 a/=b,将a除以b的值给a
%= 取余后赋值 a%=b,将a除以b的余数给啊
符号 作用 说明
++ 自增 变量的值加1
-- 自减 变量的值减1
符号 说明
== a==b 判断a和b的值是否相等,成立为true,不成立为false
!= a!=b 判断a和b的值是否不相等,成立为true,不成立为false
> a>b 判断a是否大于b,成立为true,不成立为false
>= a>=b 判断a是否大于等于b,成立为true,不成立为false
< a<b 判断a是否小于b,成立为true,不成立为false
<= a<=b 判断a是否小于等于b,成立为true,不成立为false
符号 作用 说明
& 逻辑与 a&b,a和b都是true,结果为true,否则为false
| 逻辑或 a|b,a和b都是false,结果为false,否则为true
^ 逻辑异或 a^b,a和b结果不同为true,相同为false
! 逻辑非 !a,结果和a的结果正好相反
这里我就不多细讲了,给大家一串代码,自己运行体会一下(要我讲我也讲不清楚2333)
public class test_02 {
public static void main(String[] args) {
int i = 10;
int j = 20;
int k = 30;
// & 有false则false
System.out.println((i > j) & (i > k)); // false & false
System.out.println((i < j) & (i > k)); // true & false
System.out.println((i > j) & (i < k)); // false & true
System.out.println((i < j) & (i < k)); // true & true
System.out.println("--------");
// | 有true则true
System.out.println((i > j) | (i > k)); // false | false
System.out.println((i < j) | (i > k)); // true | false
System.out.println((i > j) | (i < k)); // false | true
System.out.println((i < j) | (i < k)); // true | true
System.out.println("--------");
// ^ 相同为false,不同为false
System.out.println((i > j) ^ (i > k)); // false | false
System.out.println((i < j) ^ (i > k)); // true | false
System.out.println((i > j) ^ (i < k)); // false | true
System.out.println((i < j) ^ (i < k)); // true | true
System.out.println("--------");
// !
System.out.println((i > j)); // false
System.out.println(!(i > j)); // !false
System.out.println(!!(i > j)); // !!false
System.out.println(!!!(i > j)); // !!!false
}
}
符号 作用 说明
&& 短路与 作用与&相同,但有短路作用
|| 短路或 作用与|相同,但有短路作用
我们先看&和&&的区别:
这里我先给i=10,j=20,然后分别进行++操作在跟100比较一下。那毋庸置疑,肯定比100小所以是false
然后我们在输出i和j,他们都进行了++操作,然后我们再看&&
这里我们发现 j 并没有进行++操作,那是为什么呢
很显然只要 (j++ > 100) 运行了那么它的值就一定不可能是20,所以很明显这句话都没有运行
这就是我刚刚所讲的“短路”如果前面为false那后面的就直接不执行了,|| 也同理
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
下面有一段代码,你们可以对着这个格式自己试一试:
public class test_04 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);
}
}
我们先用Python的角度来思考这个问题:
a = input("")
完事,对吧
那我们用Java怎么实现呢?
在Java他给我们提供了Scanner这个类来用于数据的输入,那这个类该怎么用呢?
共分为三个部分:
import java.util.Scanner;
导包的代码必须出现在类定义的上面:
Scanner sc = new Scanner(System.in);
上面这个格式里,只有sc是变量名,可以变,其他的都不能变
int i = sc.nextInt();
就是这个格式,这里只有i是变量可以改,其他的我们以后会讲
我们先来说一下流程控制语句的分类:
(if, switch)
(for, while, do...while)
顺序结构是程序中最简单最基本的流程控制,没有特定的语法,按照代码的先后顺序,依次执行,程序中大对数的代码都是这样执行的。简单来说,就是我的代码按照一行一行的有顺序的去执行
格式:
if (关系表达式) {
语句体;
}
执行流程:
首先计算关系表达式的值
如果为true
就执行
如果为false
就不执行
继续执行后面的语句
这个事实上就跟Python里的
if xxxxxx:
xxxxxxx
一个意思,就是
这里要加个括号,然后整个if 语句的语句体要用大括号框起来就像Python中的 : 冒号
格式:
if (关系表达式) {
语句体;
} else {
语句体;
}
你也可以这么写:
if (关系表达式) {
语句体;
}
else {
语句体;
}
一样的
这就跟Python的这个一样的:
if xxxxx:
xxxx
else:
xxxx
这个其实也不用多说什么了
格式:
if (关系表达式) {
语句体;
} else if {
语句体;
}
同理:
if (关系表达式) {
语句体;
}
else if (关系表达式) {
语句体;
}
Java中的else if 其实就跟Python里的elif 一样的,我也就不多说了
记住,else不用加条件,但else if 要加
switch语句对于学过C/C++的朋友应该很熟悉,语法也都差不多
不多废话了,直接上格式:
switch (表达式) {
case 值1:
语句体;
break;
case 值2:
语句体;
break;
.....
default:
语句体;
break; (这个可加可不加)
}
格式说明:
byte, short, int, char
JDK5以后可以是枚举,JDK7以后可以是String
case
:后面跟的是要和表达式进行比较的值break
:表示终端,结束的意思,用来结束switch
语句default
:表示所有情况都不匹配的时候就执行该处的内容,和if
语句的else
相似(未完待续,有时间就跟新)