public class Day02_2 { //属性:变量 //实例变量:从属于对象,如果不自行初始化,这个类型的默认值。 //布尔值默认值为 false //除了基本数据类型,其余的默认值都是null String name; int age; //类变量 static static double salary = 2500; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值 int i = 10; System.out.println(i); //变量类型 变量名字 = new Day02_2(); Day02_2 stu = new Day02_2(); System.out.println(stu.age); System.out.println(stu.name); //类变量 static System.out.println(salary); } }
变量有一个使用原则:就近原则
static修饰的变量是在类加载的时候就被创建并分配内存空间,而没有static修饰的变量只有在类被实例化时才会被创建并分配内存空间
实例化:类名 对象名 = new 类名(参数1,参数2.参数n);
package cn.tedu.hello; public class MyTest { //实例变量:从属于对象,如果不自行初始化,为这个类型的默认值 //布尔值默认值为 false //除了基本数据类型,其余的默认值都是null String name; int age; //类变量 static double money = 10_0000_0000; public static void main(String args[]) { //局部变量:必须声明和初始化值 int i = 10; System.out.println(i); MyTest qi = new MyTest(); //注意用法的不同 System.out.println(qi.name); System.out.println(money); } }
package cn.tedu.hello; public class MyTest { //常量 修饰符 常量类型 常量名 = 常量值 final double ADC = 500.0; final static double PI = 3.14; public static void main(String args[]) { //注意有无static的区别 MyTest qi = new MyTest(); System.out.println(qi.ADC); System.out.println(PI); } }
final可以修饰类,方法,成员变量,局部变量。
final修饰类,那么这个类将不能继承,也就是太监类,有爹没儿。例如String类就是一个不可改变的类。特别提醒,final修饰的类,其属性和方法不是默认final修饰的。
final修饰类 或 方法的时候,不能与abstract修饰词同时使用,编译器会报错。因为final修饰的是不可改变,而abstract修饰的方法或者类。是希望被继承,覆盖重写。
final修饰成员变量时,需要注意,初始化,赋值。因为final修饰后的成员变量,系统不会给他默认赋值。也就是说 final string str;系统不会给他默认值为null。 并且编译器会报错。这个时候给str赋值有两种方法,一种是直接赋值,一种是在构造器里面进行赋值。
final修饰,局部变量的时候,对于基本类型而言,不可改变,引用地址和数据都是不可可变。在局部变量里,对于引用类型而言,引用地址不可改变,但其内容可以改变。
package cn.tedu.hello; public class MyTest { //final String name; public MyTest(String string) { name = string; } public static void main(String args[]) { //final 修饰局部变量(基本类型) final int a = 15; System.out.println(a); //final 修饰局部变量(引用类型) final MyTest stu = new MyTest("akl"); System.out.println(stu.name);//akl stu.name = "qi"; System.out.println(stu.name);//qi } }
package cn.tedu.review; public class HelloWorld { //快捷键:main Alt + / 入口函数 public static void main(String[] args) { //syso Alt + / System.out.println("HelloWrold!"); } }
JDK(Java Development Kit) — Java开发工具包 — JRE+开发工具
JRE(Java Runtime Environment) — Java运行时环境 — JVM+运行java程序所必需的环境
JVM(Java Virtual Machine)—负责加载.class并运行.class文件
什么是将java代码翻译成当前操作系统所理解的指令?
这指的就是编译的过程,将.java文件编译成.class字节码文件.编译完成会产生一个.class文件,这个文件称为字节码文件,操作系统看的指令文件就是字节码文件.
标识符可以简单的理解成一个名字。
在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。
在Java中,有一些单词被赋予了特定的意义,一共有50个关键字。
这50个单词都是全小写,其中有两个保留字:const和goto。
注意,关键字不能被用作标识符!
true,false,null也不可以被用作标识符~
格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释
格式: 以” /* ”开头, 以” * / ”结束.
快捷方式: Ctrl+shift+/ 添加注释, Ctrl+shift+\ 取消注释, 也可以输入”/*”之后按回车添加注释
格式: 以” /** ”开头。 以” */ ”结尾.
快捷方式: 输入“/**” 之后按回车添加注释
0b - 标识这是2进制 ,如:0b0101 0 - 标识这是8进制, 8进制是三位,如: 023 0x - 标识这是16进制,如: 0x0001 \u -标识这是char类型,属于16进制
long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可 float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型 double d = 3D;//3字面值是int类型,加后缀D,会变成double类型
package cn.tedu.basic; /* * 本类用于个人信息输出案例 * 需求: 在控制台打印: java架构师今年20岁,月薪100000.99,感慨java是世界上最好的语言 */ public class TestInfo { public static void main(String[] args) { String name = "柒"; int age = 21; double salary = 99_9999.99; //把静态数据与动态数据分开,通过+实现动态数据的动态拼接 System.out.println("java架构师"+ name + "今年" + age +"岁,月薪"+ salary +",感慨java是世界上最好的语言!"); } }
package cn.tedu.basic; /* * 本类用于查看基本数据类型的最小值和最大值 */ public class TestTypeScope { public static void main(String[] args) { /* * 测试整数类型 byte short int long * java提供了基本类型对应的工具箱 * 快捷键:Ctrl + Alt + 向下键 */ byte byteMin = Byte.MIN_VALUE; byte byteMax = Byte.MAX_VALUE; System.out.println("byte类型的最小值为:"+byteMin); System.out.println("byte类型的最大值为:"+byteMax); short shortMin = Short.MIN_VALUE; short shortMax = Short.MAX_VALUE; System.out.println("short类型的最小值为:"+shortMin); System.out.println("short类型的最大值为:"+shortMax); //integer int intMin = Integer.MIN_VALUE; int intMax = Integer.MAX_VALUE; System.out.println("int类型的最小值为:"+intMin); System.out.println("int类型的最大值为:"+intMax); long longMin = Long.MIN_VALUE; long longMax = Long.MAX_VALUE; System.out.println("long类型的最小值为:"+longMin); System.out.println("long类型的最大值为:"+longMax); //浮点型 float floatMin = Float.MIN_VALUE; float floatMax = Float.MAX_VALUE; System.out.println("float类型的最小值为:"+floatMin); System.out.println("float类型的最大值为:"+floatMax); double doubleMin = Double.MIN_VALUE; double doubleMax = Double.MAX_VALUE; System.out.println("double类型的最小值为:"+doubleMin); System.out.println("double类型的最大值为:"+doubleMax); //布尔型boolean true真 false假 boolean b1 = true; boolean b2 = false; System.out.println(b1); System.out.println(b2); //字符型char char c1 = 'a';//可以保存一个字符 char c2 = 97;//可以保存一个数字 char c3 = '中';//可以保存一个汉字 char c4 = 1888; //char类型可以存数字,但是在打印时,会去查ASCII码表,把数字对应的字符拿出来使用 //ASCII码表值规定了数组0-127对应的字符,128-65535默认按照字符?来处理 System.out.println(c1);//a System.out.println(c2);//a System.out.println(c3);//中 System.out.println(c4);//? } }
ASCII码表值规定了数组0-127对应的字符,128-65535默认按照字符?来处理
package cn.tedu.basic; /* * 本类用于计算圆的面积 */ import java.util.Scanner; public class TestCircleArea { final static double PI = 3.14; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入圆的半径:"); if(scanner.hasNextDouble()) { double r = scanner.nextDouble(); System.out.println("半径为"+ r +"的圆的面积为:" + PI * r * r); } scanner.close(); } }
package cn.tedu.basic; /* * 本类用于计算圆的面积 */ import java.util.Scanner; public class TestCircleArea { final static double PI = 3.14; public static void main(String[] args) { System.out.print("请输入圆的半径:"); double r = new Scanner(System.in).nextDouble(); double circleArea = PI * r * r; System.out.println("当半径为"+ r +"时,圆的面积为:"+ circleArea); } }
package cn.tedu.basic; import java.util.Scanner; /* * 本类用于练习变量的值得交换 */ public class TestValueExchage { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double a; double b; double c; System.out.print("请输入第一个数:"); if(scanner.hasNextDouble()) { a = scanner.nextDouble(); System.out.print("请输入第二个数:"); b = scanner.nextDouble(); c = a; a = b; b = c; System.out.println("交换后第一个数的值:"+ a); System.out.println("交换后第二个数的值:"+ b); } scanner.close(); } }
package cn.tedu.basic; import java.util.Scanner; /**本类用于交换两个变量的值*/ public class TestValueExchage { public static void main(String[] args) { //1.提示并接收用于输入的两个值 System.out.println("请输入a的值:"); int a = new Scanner(System.in).nextInt(); System.out.println("请输入b的值:"); int b = new Scanner(System.in).nextInt(); System.out.println("a的值:"+a); System.out.println("b的值:"+b); //2.交换a b 两个变量的值 int t ;//定义用来值交换的第三方变量t t = a;//把a的值交给t来保存 a = b;//把b的值交给a来保存 b = t;//把t的值嫁给b来保存 //3.把交换后的两个值打印在控制台 System.out.println("交换后,a的值为:"+a); System.out.println("交换后,b的值为:"+b); } }
package cn.tedu.test; import java.util.Scanner; public class TestSum { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; System.out.println("请输入数:"); for(int i = 1;scanner.hasNextDouble();i++) { //输入任意英文字母结束循环 double num = scanner.nextDouble(); sum += num; } System.out.println("所有的数和为:"+ sum); scanner.close(); } }
new关键字被使用来创建一个新的对象,可以理解为创建的意思。使用关键字new来创建一个对象也叫类的实例化,使用new创建对象时,会调用构造方法初始化对象。
引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。
小到大(隐式转换)
大到小(显式转换)
计算结果的数据类型,与最大数据类型一致
byte,short,char三种比int小的整数,运算时会先自动转换成int
整数运算溢出
浮点数运算不精确
System.out.println(1-0.8);//0.19999999999999996
浮点数的特殊值
1.【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束
错误案例:1name / _ name / name_ / $ name / name $
2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
注意,即使纯拼音命名方式也要避免采用。
正确案例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
错误案例:DaZheModule [打折模块] / getPingfenByName() [评分]
3.【强制】类名使用 UpperCamelCase 风格,即第一个单词的首字母就要大写