初始Java

初始Java


编译

一个文件中能有一个public (类)文件,

一个类产生一个对应的class (字节码)文件

	public class TestDemo {
	public static void main (String[] args) {
		System.out.printf("hello word");
	}
}

class Other {
	public static void main (String[] args) {
		System.out.println ("你好世界");
	}
}

结果是 产生 两个对应的字节码文件 TestDemo.class 和 other.class 这就是Java方便的地方 你需要你个类就 java 运行哪一个

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xfvDrCck-1646839039750)(C:\Users\huo\AppData\Roaming\Typora\typora-user-images\image-20220309190450349.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wuBDaYot-1646839039751)(C:\Users\huo\AppData\Roaming\Typora\typora-user-images\image-20220309190649915.png)]

写入文本(中文)编译报错的解决方案

再 编译的(javac)时后面接上

-encoding utf-8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-91I9uAAM-1646839039751)(E:\临时文件\屏幕截图 2022-03-09 191056.jpg)]

就不会报错了

变量

  • 注意 :在Java当中没有初始化的变量不能 使用 会报错(体现出了 Java的安全性)
public class TestDemo {
	public static void main (String[] args) {
		int num ; 
		System.out.println(num);
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RLkMT0YA-1646839039752)(C:\Users\huo\AppData\Roaming\Typora\typora-user-images\image-20220309191936930.png)]

对 int 类型的探究

int 大小 4 个字节 ,包装类 (Integer)

public class TestDemo {

	/*int 基本类型的探究*/
	public static void main (String[] args) {
		int num = 10;
		System.out.println(num);
		System.out.println(Integer.MAX_VALUE);// int 类型的最大取值
		System.out.println(Integer.MIN_VALUE);// int 类型的最小取值
	}
}

​ int 的包装类 是在

Integer

int 注意

最大值的再次越界相加的结果(记住 C语言中的int 取值的圈)

public class TestDemo {

	/*int 基本类型的探究*/
	public static void main (String[] args) {
		int num = 10;
		System.out.println(num);
		System.out.println(Integer.MAX_VALUE);// int 类型的最大取值
		System.out.println(Integer.MIN_VALUE);// int 类型的最小取值
		System.out.println("`````````````````````````````````````````````");
		
		int nr = Integer.MAX_VALUE+1; // -2147483648
		System.out.println(nr);
		int nr2 = Integer.MAX_VALUE+2; // -2147483647
		System.out.println(nr2);

	}
}

int 类型的计算的误区

  • public class TestDemo {
    	/*int 类型的误区*/
    	public static void main(String[] args) {
    		int num1 = 1;
    		int num2 = 2;
    		System.out.println(num1/num2);
    		// 在java 当中 int类型的乘除的仍然为 int(类型的)
    	}
    }
    
  • public class TestDemo {
    
    
    	/*int 类型的误区*/
    	public static void main11 (String[] args) {
    		double num1 = 1.0;
    		int num2 = 2;
    		System.out.println(num1/num2);
    		// 同理 报错类型不兼容的问题
    		// 将默认的小数(double)的类型赋值给int 的类型的报错的
    	} 
    
    
        public static void main10 (String[] args) {
    	    int num3 = 1.0;
    		int num4 = 2.0;
    		sum = num3 + num4 ;
    		System.out.println(sum);
    		// 报错类型不兼容的
    		// 将默认的小数(double)的值赋给 int的类型报错的
    		/*不像C语言会自动整形提升的 体现了Java的强制类型*/
        }
    }
    

long 类型的探究

long 类型 大小 8个字节,包装类(Long)就是首字母大写

public class TestDemo {
	/*对 long 类型的探究*/
	public static void main (String[] args) {
		// long num = 10; // 在java 当中 整数默认为 Int 的类型所以需要加上 L(注意这里的是大写的字母)
		               // 虽然可以编译通过但是它 编译出来的不是 long 的类型的 是int 的
		Long num = 10L;
		System.out.println(num);
		System.out.println("long的最大值:"+Long.MAX_VALUE);  // 9223372036854775807
		System.out.println("long的最小值:"+Long.MIN_VALUE);  // -9223372036854775808
	}
}

long 注意

定义long 类型时数值的后面需要接上 (L)大写字母 因为 整形数值在Java当中默认为 int 类型的 ,所以当你需要表示为

long 的类型的时候接上**(L)**

拼接字符串 :+

"+"是字符串的拼接的

注意对 优先级的使用 不要吝啬你手中的括号(不然结果与你现象的不一样的)

public class TestDemo {
	/*对连接符的探究*/
	public static void main (String[] args) {
		int num = 10;
		int num2 = 20;
		System.out.println("num+num2 = "+(num+num2)); 
		/*+ 是对字符串拼接的  num+num2 = "(num+num2)"*/
		System.out.println("num+num2 = "+num+num2);
		/*这里是 字符串的拼接 num+num2 = "num(10)"*/
		/*                   num+num2 = 10 "num2"*/
	}
}

(String[] args ) 的作用

作用: 运行命令行参数 (gaobo is cool )

在运行 (java) 字节码文件时接上(gaobo is cool )

public class TestDemo {
	/*对运行的命令行参数 (String[] args)的作用*/
	public static void main (String[] args) {
		int i = 0;
		for(i = 0; i < args.length ; i++ )
		{
			System.out.println(args[i]);
		}
		System.out.println("Kaixin");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e1Tss9TG-1646839039752)(C:\Users\huo\AppData\Roaming\Typora\typora-user-images\image-20220309203756218.png)]

double 类型的探究

大小 8个字节大小空间,包类(Double)就是首字母大写

在Java中 小数默认为 双精度类型的(double)

	public class TestDemo {
	/* 对 dobule 类型的探究 */
	public static void main (String[] args) {
		double num = 3.14;
		// 注意 在 Java 中 小数默认为 dobule 的类型的
		System.out.println(num);
		System.out.println(Double.MAX_VALUE);	
		System.out.println(Double.MIN_VALUE);	
	}
}

double 的精度问题

public class TestDemo {

	/*double类型的问题*/
	public static void main(String[] args) {
		double num = 1.1;
		System.out.println(num * num);	//1.2100000000000002

	}
  • double 的精度是有限的只能保证前几位的精度,后面的就是无法保证的
  • 在Java 中 double 虽然是 8个字节大小的,但是浮点数的内存布局和整数差别很大的,
  • 不能单纯的用z^n的形式表示数
  • 浮点数float 精确表示小数的后 6 位数
  • 小数的在内存当中的存储和浮点数的存储是不样的
  • 一般情况下如果你以后写项目遇到小数,建议使用 double 类型的精确度大一些
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值