在程序运行中值可以变化的量;
类型 变量名;
package com.zhang.Base; // Demo05类名 public class Demo05 { /* * 变量按照作用域来分有三种: * 类变量 实例变量 局部变量 * */ //类变量 static static double salary = 3000; //整个类中可使用 static String name = "Jinx"; /*=======================================================*/ //实例变量 /*除了局部变量初始化时必须赋值,类变量和实例变量不初始化值会使用默认值 * 实型变量 0 * 浮点型变量 0.0 * 布尔型 false * 字符型实际上也是数字 /u0000 0 * 字符串是引用类型变量,不是基础变量,除了基础变量,其他默认值都是”null“*/ char gender = '男'; String address;// = "秀川"; // main 方法名 public static void main(String[] args) { System.out.println(salary);//类变量 System.out.println(name); name = "Yi"; //重新给类变量赋值 System.out.println(name); System.out.println("========================================"); /*===============================================================================================*/ Demo05 d5 = new Demo05();// 实例变量 System.out.println(d5.address); System.out.println(d5.gender); System.out.println("========================================"); /*=======================================================*/ int i = 5; //局部变量 只能在此方法中使用 System.out.println(i); } // 方法名add public static void add(){ // System.out.println(i); 不能使用 } }
常量可以理解为特殊的变量,在程序运行过程中值不可变
final 类型 常量名;
package com.zhang.Base; public class Demo06 { //常量:初始化之后不能再改变值 //常量名一般用大写 final double PI = 3.1415926; // 修饰符前后顺序可变 final static long NUM = 12345678910L; static final float G = 9.8F; public static void main(String[] args) { Demo06 d6 = new Demo06(); System.out.println(d6.PI); System.out.println(G); System.out.println(NUM); } }
运算中,不同类型的数据先转换为同一类型,再运算。
小数优先级高于整数
注意:
package com.zhang.Base; public class Demo03 { public static void main(String[] args) { //强制类型转换 高--->低 int i = 128; byte i2 = (byte)i; // 强制转换 (类型)变量名 System.out.println(i); System.out.println(i2); System.out.println("================================"); //自动类型转换 低--->高 char c = 'A'; int b = c+1; //自动转换 System.out.println(b); System.out.println((char) b); //强制转换 } }
package com.zhang.Base; public class Demo04 { public static void main(String[] args) { //jdk7新特性 数字之间可以加入“_” int money = 100_000_000_0; int year = 20; int total = money*year; //内存溢出 long total2 = money*year; /*先以本身的int类型计算,然后把值赋给total2, *计算的时候已经溢出了,在赋值之前就已经有问题了*/ long total3 = (long)money*year; /*在计算的时候就强制类型转换,可以解决此问题 *运算中,不同类型的数据先转换为同一类型,再运算。*/ System.out.println(total); System.out.println(total2); System.out.println(total3); } }
package com.zhang.Operator; public class Demo01 { public static void main(String[] args) { int i=10; byte i2=15; short i3=20; long i4=50L; System.out.println(i+i2+i3+i4);//计算机结果为long型 System.out.println(i+i2+i3);//int型 只要有lang为long型,无lang都为int型。 System.out.println(i+i2);//int型 浮点数优先级更高 System.out.println("========================================"); //========================================= int a = 5; int b,c; b=a++; //使用之后自增一 System.out.println(a); c=++a;//使用之前自增一 System.out.println(b); System.out.println(c); //幂运算 Math类 double m = Math.pow(2,4); System.out.println(m); System.out.println(a>m); System.out.println(a==c); } }
package com.zhang.Operator; public class Demo02 { public static void main(String[] args) { System.out.println(2<<3);//位运算 int score = 60; String type=score>=60?"及格":"不及格";//三元运算符 System.out.println(type); } }
包的本质就是文件夹
package com.zhang.pkg; // 必须写在第一行 // 导入一个包 import java.util.Date; //可以使用通配符 import com.zhang.Operator.*; public class Pkg { public static void main(String[] args) { // Date } }
写在类上面就是类注释,写在方法上面就是方法的注释
package com.zhang.Base; /** * @author zhang * @version v1.0 * @since jdk-1.8 */ public class JDoc { String name; //属性 /** * * @param name * @return * @throws Exception */ public String test(String name) throws Exception{ return name; } }
java: 错误: 无效的源发行版:16
两处JDK版本不一致