初始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 类型的精确度大一些