Java教程

Java学习的第七天

本文主要是介绍Java学习的第七天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Day07

变量

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);
	}
}

常量

  • 常量(Constant):初始化(initialize)后不能再改变的值!不会变动的值。
  • 常量可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
    • final 常量名 = 值;
    • final double PI = 3.14;
  • 常用名一般使用大写字符。
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可以修饰类,方法,成员变量,局部变量。

  • 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
	}
}

HelloWorld复习

package cn.tedu.review;

public class HelloWorld {
	//快捷键:main Alt + /  入口函数
	public static void main(String[] args) {
		//syso Alt + /
		System.out.println("HelloWrold!");
	}
	
}

JDK JRE JVM解释

  • JDK(Java Development Kit) — Java开发工具包 — JRE+开发工具

    • 开发java程序最小的环境为JDK,所以JDK是JAVA语言的核心
  • JRE(Java Runtime Environment) — Java运行时环境 — JVM+运行java程序所必需的环境

    • 运行java程序最小的环境为JRE
  • JVM(Java Virtual Machine)—负责加载.class并运行.class文件

    • JVM(JAVA虚拟机)将JAVA代码转换为对应的操作系统可以理解的指令,不同的操作系统有不同虚拟机与之对应,同一段代码交给虚拟机之后,虚拟机再转化给操作系统

什么是将java代码翻译成当前操作系统所理解的指令?
这指的就是编译的过程,将.java文件编译成.class字节码文件.编译完成会产生一个.class文件,这个文件称为字节码文件,操作系统看的指令文件就是字节码文件.

JAVA语法基础

标识符

标识符可以简单的理解成一个名字。
在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);
		
	}
}

Scanner回顾

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来创建一个对象也叫类的实例化,使用new创建对象时,会调用构造方法初始化对象。

引用类型

引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。

基本类型的类型转换

小到大(隐式转换)

大到小(显式转换)

运算规则

  1. 计算结果的数据类型,与最大数据类型一致

  2. byte,short,char三种比int小的整数,运算时会先自动转换成int

  3. 整数运算溢出

    • 整数运算,类似于一个钟表,转到最大时,再转会回到最小。
    • 因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。
  4. 浮点数运算不精确

    System.out.println(1-0.8);//0.19999999999999996
    
  5. 浮点数的特殊值

    • Infinity 无穷大 3.14/0
    • NaN not a number 0/0.0 或 0.0/0

标识符命名风格

1.【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束
错误案例:1name / _ name / name_ / $ name / name $
2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
注意,即使纯拼音命名方式也要避免采用。
正确案例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
错误案例:DaZheModule [打折模块] / getPingfenByName() [评分]
3.【强制】类名使用 UpperCamelCase 风格,即第一个单词的首字母就要大写

这篇关于Java学习的第七天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!