Java1-计算机基础&Java基础
计算机基础
1、键盘快捷键
全选 Ctrl+A
复制 Ctrl+C
粘贴 Ctrl+V
剪切 Ctrl+X
撤销 Ctrl+Z
保存 Ctrl+S
锁屏 Windows+L
直接显示桌面 Windows+D (再按一次恢复)
直接显示桌面 Windows+M (再按一次不恢复)
打开资源管理器 Windows+E
放大镜 Windows+ '+'号
2、常用DOS命令
d: 回车 盘符切换,转换D盘
dir(directory) :列出当前目录下的文件以及文件夹
md(make directory) :创建目录
md aa : 创建名为aa的文件夹
rd(remove directory) :删除目录
rd aa : 移除名为aa的文件夹
cd(change directory) :进入指定目录
cd.. :退回到上一级目录
cd\ :退回到根目录
del (delete): 删除文件
del *.txt:删除一堆后缀名一样的文件*.txt
exit :退出dos命令行
cls(clear screen) : 清屏
Java基础
1、Java语言特点
简单性 解释性
面向对象 高性能
分布式处理 多线程
健壮性 动态
结构中立 安全性
开源
跨平台:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
2、JVM、JRE、JDK
JVM(JVM Java Virtual Machine):Java虚拟机。在需要运行java应用程序的操作系统上,先安装一个Java虚拟机即可。由JVM来负责Java程序在该系统中的运行。(直接与系统平台打交道)
JRE(Java Runtime Environment):Java运行环境。包括Java虚拟机和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK(Java Development Kit):Java开发工具包。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
3、Java运行机制
源文件(*.java) --> Java编译器 --> 字节码文件(*.class) --> JRE(类装载器 -> 字节码校验器 -> 解释器) --> 系统平台
4、关键字(保留字)
被Java语言赋予特定含义的单词,是Java语言保留供内部使用的。(class、abstract、byte、return、throw...)
特点:全部小写。
注意事项:goto和const作为保留字存在。
5、标识符
2、组成规则:
A:英文大小写字母
B:数字
C:$和_
3、注意事项:
A:不能以数字开头
B:不能是java中的关键字
C:区分大小写
4、常见的命名规则
A:包 全部小写
单级包:小写(liuyi,com)
多级包:小写,并用.隔开(cn.itcast,com.baidu)
B:类或者接口
一个单词:首字母大写(Student,Demo)
多个单词:每个单词首字母大写(HelloWorld,StudentName)
C:方法或者变量
一个单词:首字母小写(name,main)
多个单词:从第二个单词开始,每个单词首字母大写(studentAge,showAllNames())
D:常量 全部大写
一个单词:大写(PI)
多个单词:大写,并用_隔开(STUDENT_MAX_AGE)
6、注释
A:单行注释 //
B:多行注释 /**/
C:文档注释(后面讲) /** */
7、常量
2、分类:
A:字面值常量
B:自定义常量
3、字面值常量
A:字符串常量 "hello"
B:整数常量 12,23
C:小数常量 12.345
D:字符常量 'a','A','0'
E:布尔常量 true,false
F:空常量 null
4、自定义常量
A:final 数据类型 常量名称 = 值;
final double PI = 3.14;
B:final 数据类型 常量名称1 = 值1,常量名称2 = 值2,……常量名称n = 值n;
final char SEX_MALE='男',SEX_FEMALE='女';
5、在Java中针对整数常量提供了四种表现形式
A:二进制 由0,1组成。以0b开头。
B:八进制 由0,1,...7组成。以0开头。
C:十进制 由0,1,...9组成。整数默认是十进制。
D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
A:其他进制到十进制
系数:就是每一个位上的数值
基数:x进制的基数就是x
权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权
结果:系数*基数^权次幂之和
B:十进制到其他进制
除基取余,直到商为0,余数反转
C:十进制和二进制间的转换:8421码
6、变量
1、在程序的执行过程中,其值在某个范围内可以发生改变的量。变量是可操作的存储空间,是程序中最基本的存储单元。
2、变量的定义格式:
A:数据类型 变量名 = 初始化值;
B:数据类型 变量名;
变量名 = 初始化值;
7、数据类型
1、Java是强类型语言,每个变量都必须声明其数据类型。
2、计算机中存储数据的最小单元是:字节(byte),用B表示。
3、分类:
A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。(占用4个字节)
4、基本数据类型
A:整数 占用字节数
byte 1
short 2
int 4
long 8
B:浮点数
float 4
double 8
C:字符
char 2
D:布尔
boolean 1
注意:整数默认是int类型,浮点数默认是double。
长整数要加L或者l。long j = 10000000000L
单精度的浮点数要加F或者f。float j = 12.345F
5、boolean类型有两个值,true和false
JAVA规范中没有定义boolean类型的大小。java的基本数据类型中,boolean只有两种状态,默认值为false。取值范围是{true,false},理论上占1bit,实际上:
A:单个的boolean 类型变量在编译的时候是使用的int 类型。
boolean a=true; //这个a在JVM中占4个字节即:32位。
B:boolean 类型的数组时,在编译的时候是作为byte array来编译的所以boolean 数组里面的每一个元件占一个字节。
boolean[] b = new boolean[10]; //数组时,每一个boolean在JVM中占一个字节
6、浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用 BigDecimal类。
BigDecimal b = BigDecimal.valueOf(0.1/10.0);
8、数据类型转换
1、boolean类型不参与转换
2、默认转换
A:从小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。byte,short,char在定义时接收的其实就是int型的值,数据自己进行检测,不在他们的范围内会报错。
3、强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
4、思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;
解答:前者12.345本身是一个float类型的数据,而后者12.345是个double类型的,经过强制转换赋值给f2
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
解答:第三行有问题,因为可能存在精度损失的情况。变量相加,会先看类型,虽然b1和b2是byte类型,但做加法会先转为int类型,因此将(b1+b2)的int类型数值赋值给byte类型的b3,会有问题。
C:下面的操作结果是什么呢?
byte b = (byte)130;//计算机中是通过补码的方式进行运算的
解答:在计算机中所有的数据都是以补码的形式出现的所以要算它的补码
130是正数,原反补一致,int型,二进制为:00000000 00000000 00000000 10000010 (这个结果是补码)
转为byte型:截取1个字节:10000010(这个结果是补码)
最高位符号位是1,这是一个负数,根据补码求原码
补码: 1 0000010 (1为符号位)补码变反码,补码减一
反码: 1 0000001 反码变原码,最高位符号位不变,其他数值位1变0,0变1
原码: 1 1111110 最高为是符号位不运算,数值为转化为十进制是64+32+16+8+4+2=126,符号位负
结果:-126
D:字符参与运算
是查找ASCII里面的值
'a' 97
'A' 65
'0' 48
System.out.println('a'); 结果:a
System.out.println('a' + 1); 结果:98
E:字符串参与运算
这里其实是字符串的连接
System.out.println("hello"+'a'+1); 结果:helloa1
System.out.println('a'+1+"hello"); 结果:98hello