1.为什么要包装类?
(1).首先,Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,将每个基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质。
(2).其次,如果仅仅有基本数据类型,那么在实际使用时将存在很多的不便,很多地方都需要使用对象而不是基本数据类型。比如,在集合类中,我们是无法将int 、double等类型放进去的,因为集合的容器要求元素是Object类型。而包装类型的存在使得向集合中传入数值成为可能,包装类的存在弥补了基本数据类型的不足。
(3).此外,包装类还为基本类型添加了属性和方法,丰富了基本类型的操作。如当我们想知道int取值范围的最小值,我们需要通过运算,如下面所示,但是有了包装类,我们可以直接使用Integer.MAX_VALUE即可。
2.包装类的2种主要用途
1.java中的数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。为了弥补这个缺陷,java提供了包装类。
作为 和基本数据类型对应的类, 包装类存在,方便涉及到对象的操作。
包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
3.为什么要保留基本数据类型?
我们都知道在Java语言中,用new关键字创建的对象是存储在堆里的,我们通过栈中的引用来使用这些对象,所以,对象本身来说是比较消耗资源的。对于经常用到的类型,如int等,如果我们每次使用这种变量的时候都需要new一个对象的话,就会比较笨重了。所以,Java提供了基本数据类型,这种数据的变量不需要使用new在堆上创建,而是直接在栈内存中存储,因此会更加高效。
(二)、Java的基本格式:
固定格式:
public class 文件名
{
public static void main(String []avgs){
}
};
(三)、Java的输入输出:
1.输出问题:
格式: System.out.println();
代码展示:
public class one
{
public static void main(String []avgs) //切记是大写
{
int a=3;
//系统 调用输出 调用打印
System.out.println("通过电脑屏幕打印出来的数据为:\n");
System.out.println(a);
}
} //这里没有分号
效果展示:

2.输入问题
1. 引入工具包: import java.util.Scanner;
2. 声明工具包:Scanner sc=new Scanner(System.in);
3. ==========================================================
使用工具包: i=sc.nextInt(); //输入整形
使用工具包 j=sc.nextFloat(); //输入浮点型
使用工具包 k=sc.nextDouble(); /输入double型
使用工具包 s=sc.next(); //输入字符串 String
使用工具包 c=sc.next().charAt(0); //输入字符char
4. 以上方法遇到空格 制表符\t 回车. 这些符号后数据就不会被接受了.===================
使用工具包 s=sc.nextLine() //接受字符串
6. 这个方法只有遇到回车才会结束
代码展示:
// 引入工具包
import java.util.Scanner;
public class one
{
public static void main(String []avgs)
{
//声明工具包
Scanner sc=new Scanner(System.in);
System.out.println("请您输入您要输入一个整形的数据:");
int i;
//使用工具包
i=sc.nextInt(); //仔细看 nextInt();
System.out.println(i);
float j;
System.out.println("请您输入一个浮点型数据:\n");
//使用工具包
j=sc.nextFloat(); // 仔细看 nextFloat
System.out.println(j);
double k;
System.out.println("请输入一个double型的数据:\n");
//使用工具包
k=sc.nextDouble();
System.out.println(k);
System.out.println("请输入一个字符串:\n");
String s;
//使用工具包
s=sc.next();
System.out.println(s);
System.out.println("请输入一个字符\n:");
char c;
//使用工具包
c=sc.next().charAt(0);
System.out.println(c);
}
}
效果展示:

第一套体系:输入的时候用空格分开:
(因为第一个数据接受了 1和空格,那么内存里面还有一个2,所以自动分配给了第二个接收数据.)

第二套体系:
遇到空格不会停止,只有遇到回车的时候才有问题

两个体系混用的时候(空格)

两个体系混用,回车

(三)、运算符的规则:
小空间的转化成大空间的 比如说 1L的水到进4L杯子是可行的.
运算的取值大小:
bety<short<int<long<float<double
byte short char 在运算前首先要转换成int .
(四)、 + 起到链接字符串和运算的作用
代码展示:
public class one
{
public static void main(String []avgs)
{
System.out.println("123"+123);
System.out.println(1+2+"黑马程序");
System.out.println('a'+3);
}
}
效果展示:

2.逻辑非
3.逻辑且
4.逻辑异或
5.短路且
&& 一个为假全部为假 (区别在于只要第一个是个确定的,
第二个我可以不看)