java组成
-
JVM:虚拟机,真正运行Java的地方。
-
JRE:核心类库+自带程序。
-
开发工具:javac、java
java跨平台的含义
-
一次编译,处处可用。同个不同平台操作系统的虚拟机实现
环境变量
-
老版本不能自动配置,新版本自动配置。
-
配置JAVA_HOME,新版本也不能自动配置。
intellij IDEA开发工具
IDEA常用快捷键
-
main+回车 主方法
-
sout+回车 打印
-
Ctrl + D复制当前行到下一行
-
Ctrl +Y删除当前行
-
Ctrl +X剪贴
-
Ctrl +Alt+L格式化代码
-
ALT+SHIFT+向上箭头 移动本行代码位置
java语法
注释
注释不影响程序的执行
-
单行注释 //
-
多行注释 /* 注释的内容 */
-
文档注释 /** 注释内容 **/
字面量
常用数据
常用数据 | 程序中的写法 | |
---|---|---|
整数 | 666 | |
小数 | 0.666 | |
字符 | ’中‘ | 必须是单引号 |
字符串 | “中国万岁” | 必须是双引号 |
布尔值 | Ture/False | |
空值 |
变量
什么是变量
变量是一个储存数据的区域
变量的作用
-
存储数据的,可以改变里面存储得我数据
变量的格式
-
数据类型 变量名称 = 初始值;
变量的注意事项
-
变量要先声明再使用
-
变量声明后不能再存储其它数据类型
-
变量的·有效范围是一个{}内,同一个{}内不能定义两个同名变量
-
变量声明时可以不赋予初始值
变量在计算机中的底层原理
计算机的的最小单位:一个字节,八位二进制数据
不同进制之间的转换:在计算机中二进制以0B开头,八进制以0开头,十六进制以0X开头
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
97 | 01100001 | 01,100,001即141 | 0110,0001即61 |
250 | 111111010 | 11,111,010即372 | 1111,1010即XA |
计算机的数据单位
| 1TB | =1024GB | =1024x1024MB | =1024x1024x1024KB | 1KB=1024B | 1B=8b || ---- | ------- | ------------ | ----------------- | --------- | ----- |
数据类型
基本数据类型
四大类八种(string是引用数据类型)
数据类型 | 关键字 | 取值范围 | 内存占用(字节数) |
---|---|---|---|
整数 | byte | -128~127 | 1 |
整数 | short | -32768~32767 | 2 |
整数 | int(默认) | -2147483648-2147483647 | 4 |
整数 | long | -9223372036854775808~ 9223372036854775807(19位数) | 8 |
浮点数 | float | 1.401298e-45到3.402823e+38 | 4 |
浮点数 | double | 4.9000000e-324到1.797693e+308 | 8 |
字符 | char | 0~65535 | 2 |
布尔 | boolean | Ture,False | 1 |
注意:如果希望随便写一个整数字面量当成Long类型,需要在其后加L(数据过大必须要加)
注意:随便写一个小数字面量默认是double类型,如果希望随便写一个小数字面量是float类型的需要在其后加上F/ f
注意:char只能便是一个字符
引用数据类型
String表示字符串。
关键字
和python一样这些名字j被ava自己占用了。
标识符(取名规则)
标志符就是由一些字符、符号组合起来的名称,用于给类,方法,变量等起名字的规矩。
标识符的要求
-
有数字字母下划线和美元符号组成。
-
不能以数字开头,不能是关键字,区分大小写。
变量名称:满足标识符规则,建议全英文、有意义、首字母小写,满足“驼峰模式”,例如: int studyNumber = 59。
类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如: Helloworld.java。
类型转换
自动类型转换
-
范围小的变量能直接赋值给范围大的变量
-
表达式自动转化为式子中的最大类型
-
byte,short,char在运算中会被转化为int进行计算。
强制转化
数据类型 变量 = (数据类型)变量/数据 ()里表示强制转换的类型
容易造成数据的丢失
运算符
与python相同
-
对于+运算符能算则算,不能计算将数据连接起来
-
"aaa"+10=aaa10
-
'A'+5=53(A在1ascii编码表为48位)
-
自增自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 自增 | 变量自身加一 |
-- | 自减 | 变量自身减一 |
赋值运算符
符号 | 使用 | 说明 |
---|---|---|
+= | 加后赋值 | a+=b : 等价于(a的数据类型)(a+b);将a+b的值给a |
-= | 减后赋值 | a-=b : 等价于(a的数据类型)(a-b);将a-b的值给a |
*= | 乘后赋值 | ...... |
/= | 除后赋值 | ...... |
%= | 取余后赋值 | ...... |
= | 赋值 |
-
特点:自带强制类型转化
关系运算符
-
注意:最终返回结果为布尔值
-
注意:不要将==写成=
-
逻辑运算符
短路逻辑运算符
-
运算效率非常高
三元运算符
-
格式 条件表达式? 值1:值2
-
执行流程:先计算表达式,如果是Ture返回值1,如果是Flase则返回值2.
-
例子
public class one { public static void main(String[] args) { double score = 70; String rs = score > 60?"及格":"不及格"; System.out.println(rs); } }
#拓展
public class one { public static void main(String[] args) { int k = 50; int j = 60; int i = 80; int maxre = i > j? i > k? i:k : j > k? j: k; System.out.println(maxre); } }
运算符的优先级问题
什么是APi
-
APPlication Progrmming interface,应用程序编程接口
-
是java写好的程序咱们可以直接调用。
import java.util.Scanner;
public class one {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入您的年龄:");
int age = sc.nextInt();
System.out.println("您的年龄是" + age);
System.out.print("请输入您的姓名");
String name = sc.next();
System.out.println("您叫" + name);
}
}