Java上课笔记(1-3章)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li_jeremy/article/details/79795818

平台无关性
Java语言分两步执行
1.先将代码编译成字节码
2.有Java虚拟机(JVM)解释执行字节码。
可以在不同的硬件平台上实现Java虚拟机,保证了Java语言的平台无关性和可移植性
JDK目录介绍
bin目录:存放Java编译器、解释器等工具(可执行文件)
demo目录:存放演示程序
include:相关的头文件
jre:存放Java运行环境文件
lib:Java库类文件
sample:一些范例程序
db:轻量级数据库
标识符与关键字
1.Java符号集采用Unicode字符集(UTF-16);一个字符占两个字节
2.在JVM运行时UTF-16,在.class文件中是UTF-8
3.常见的字符编码方式:Unicode、ASC||、GBK/GB2312、UTF-8
这里写图片描述
4.整数类型——byte(8位)、short(16位)、int(32位)和long(64位)
5.float类型要在数字后面加上f或F,不加的话默认double
6.String不是类型是一个类,字符放在“ ”里面
变量
1.数字型自动初始值为0
2.对象型自动初始值为null
3.十进制数:0~9组成,不能以0开头;八进制:0~7组成,以0为前缀;十六进制:0~9数字以及A~F的字母(大小写均可)或0x为前缀
4.默认情况整型常量为int类型,若要表示long类型的整型常量可在常量后面加L(或l)
基本类型之间的转换
1.低存储为可自动转换为高存储位数据,而高存储位数据类型向低位进行转换要经过强制转换
2.(byte,short,char),int,long,float,double按照顺序由低到高。
3.子类能直接转换为父类,不需要强转;但是反之必须要进行强转。
4.强转格式如下:(类型名)要转化的类型
这里写图片描述
例:

short n =1;
short m =2;
short l =n+m;//编译出错

上述原因是在进行运算时,byte、short、char类型会被自动提升为int型。
封装类
1.包装类都位于java.long包中
2.基本数据类型的包装类如下
这里写图片描述
Wrapper类
拓展(为什么要有装箱和拆箱)
把一个基本类型包装成一个类,一个是可以使这个类型具有很多可以调用的方法。二个是Java向面像对象语言的靠近。其实Java还不算是很纯的面向对象的语言。真正的面向对象,是没有基本数据类型的。它只有一种类型,就是对象。三个是在泛型中,基本类型是不可以做泛型参数的。如:List list = new ArrayList ();这是不合法的。你只能这个样写List list = new ArrayList ();也就是要用int型的包装类类型来解决基本类型不可以做泛型参数的问题

int p = 500;
Integer w = new Integer(p);//装箱
int p2 = w.intValue();     //拆箱

自动装拆箱
这里写图片描述
创建包装器对象
除Character之外,所有的包装器都提供两个构造函数:一个是基本类型,另一个是字符串

Integer i =new Integer(10);
Integer i1 = new Integer("1=");
//而Character只提供一种构造器
Character c = new Character('a');

valueOf()方法
是有包装器提供的一个类的静态方法

//二进制
Integer i = Integer.valueOf("101011",2);
//首先将101011转换成43然后将43赋给id对象

xxxValue()方法(拆箱)
用于把包装类的值转换为一个基本类型的数据

Integer i2 = new Integer(55);
byte b = i2.byteValue();
double d = i2.doubleValue();

parsexxx()
参考valueOf()

Integer y = new Integer(567);   
  y++;                     
 System.out.println("y = " + y);   


Integer y = new Integer(567);     
int x = y.intValue();                
x++;                                   
y = new Integer(x);                   
 System.out.println("y = " + i);  //两个y不是一个地址了


//y++相当于以下操作
int x2= y.intValue();
x2++;
y = new Integer(x2);

有关常量池的概念下面链接[https://blog.csdn.net/gcw1024/article/details/51026840]
字符串与整型之间的转换
String转换为int

int i = Integer.parselnt(str);
int i = Integer.valueOf(my_str).intValue();

String转换为Integer

Integer integer = Integer.valueOf(str);

int转换为String

String s = String.valueOf(i);   
String s = Integer.toString(i);   
String s = "" + i; 

Arrays类
见之前的博客

猜你喜欢

转载自blog.csdn.net/li_jeremy/article/details/79795818
1-3