eclipse的jdk插件
项目配置Java编译环境
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y02FeB0G-1593609648402)(G:_千锋\JAVAEE\笔记\截图\编译环境的配置.png)]
为什么要规范
专业性职业素养前提
见名知意规范
包
域名倒写,全部小写字母
com.qfedu类、接口
单个单词:首字母大写多个单词:每个单词的首字母大写
Demo DemoKey方法、变量
单个单词:首字母小写
多个单词:从第二个单词起,首字母大写
run runQuick常量
全部大写
多个单词之间用_连接
HOME HOME_NAME概述
在代码运行过程中,能够发生改变的量语法
数据类型 变量名 = 值;分类
局部变量 定义在方法中,又叫方法变量 全局变量 定义在方法外,又叫对象变量 静态变量 定义在方法外,有static修饰,又叫类变量代码实现
局部变量
public class Demo05_Variable { public static void main(String[] args) { // 数据类型 变量名 = 值; byte num1 = 127; System.out.println(num1); short num2 = 600; System.out.println(num2); int num3 = 100000; System.out.println(num3); long num4 = 1000000000; System.out.println(num4); float num5 = 1.3f; System.out.println(num5); double num6 = 5.6; System.out.println(num6); boolean flag = true; System.out.println(flag); char chr = 'A'; System.out.println(chr); String str = "abcd"; System.out.println(str); } }全局变量,静态变量
public class Demo05_Variable02 { static byte num1 = 127; static short num2 = 600; static int num3 = 100000; static long num4 = 1000000000; static float num5 = 1.3f; static double num6 = 5.6; static boolean flag = true; static char chr = 'A'; static String str = "abcd"; public static void main(String[] args) { System.out.println(num1); System.out.println(num2); System.out.println(num3); System.out.println(num4); System.out.println(num5); System.out.println(num6); System.out.println(flag); System.out.println(chr); System.out.println(str); } }作用域
同一作用域类不能同时声明一个相同的变量变量的初始化问题
成员变量在声明的没有赋值,则系统会自动赋值 byte short int long 初值为0float double 初值为0.0boolean 初值为falsechar 初值为‘’ 局部变量在声明时没有赋值,系统不会自动赋值一条代码定义多个变量
int n = 1, m = 2, g = 3;概述
byte short int char 参与运算会转换成int类型大精度和小精度参与运算会升成大精度小类型和大类型参与运算会升成大类型 public class Demo11_TypeTransfer { public static void main(String[] args) { byte num1 = 1; byte num2 = 2; int numl = num1 + num2; short num3 = 2; short num4 = 5; int numk = num3 + num4; int num5 = 5; int num6 = 7; int numj = num5 + num6; char chr1 = 1; char chr2 = 2; int chr = chr1 + chr2; double num7 = 5.5; float num8 = 3; double numh = num7 + num8; int num9 = 5; long num10 = 6; long numg = num9 + num10; } }概述
大精度–>小精度大类型–>小类型语法
小类型 变量名 = (小类型)值 * 代码 ```java public class Demo11_TypeTransfer { public static void main(String[] args) { byte n = 2; byte m = 3; byte l = (byte)(n + m); } }字符参与运算
char类型会自动升成int类型,结果参考ASCII码表 0–>48 A–>65 a–>97字符串参与运算
任何类型的数据和字符串使用“+”运算时都会被看成字符串,再拼接System.out.println('a'+1) //输出98 System.out.println("hello"+1) //输出hello1 System.out.println("hello"+('a'+1)) //输出hello98概述
进位制,即人们定下的一种进位规定,二进制即逢2进1,八进制即逢8进1,等等二进制
即0,1,逢2进1八进制
二进制表示数字太长,以3位二进制表示1位八进制十六进制
八进制表示数字太长,以4位二进制表示1位十六进制二进制
以0b开头八进制
以0开头十六进制
以0x开头 public class Demo06_scale { public static void main(String[] args) { System.out.println(0b100); System.out.println(0100); System.out.println(0x100); } }除积倒取余
概述
计算机进行数字运算时使用的是补码原码
就是二进制数本身,只是在前面多了一个符号位反码
正数的反码就是原码,负数的反码就是将原码0变1,1变0,符号位不变补码
正数的补码就是原码,负数的补码就是反码的末尾+1解释7+(-7)= 0
问题说明
2个byte类型的值num1,num2,加和之后进行强转
public class Demo09_AccuracyLoss { public static void main(String[] args) { byte num1 = 66; byte num2 = 70; byte sum = (byte)(num1 + num2); System.out.println(sum); } } //输出结果是-120为什么两个正数的加和却是一个负数?
计算机内部进行数字加和的时候是以补码的形式进行加和的。66+70=136 即 1000 1000
存中…(img-cJN3AGcq-1593609648405)]
问题说明
2个byte类型的值num1,num2,加和之后进行强转
public class Demo09_AccuracyLoss { public static void main(String[] args) { byte num1 = 66; byte num2 = 70; byte sum = (byte)(num1 + num2); System.out.println(sum); } } //输出结果是-120为什么两个正数的加和却是一个负数?
计算机内部进行数字加和的时候是以补码的形式进行加和的。66+70=136 即 1000 1000
(num1+num2)应该是一个int型的数,int型有4个字节,强转为byte后,损失了3个字节(byte只有1个字节),一个字节是8位,此时1000 1000是在计算机内以补码的形式存在,要将其化为原码再显示出来,此时第一位的1为符号位,先计算出其反码 1000 0111 再计算其原码,1111 1000,再将后面7位转换成十进制,1为符号位,结果即为-120