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、标识符

1、就是给类,接口,方法,常量,变量等起名字的字符序列
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、常量

1、在程序执行的过程中,其值不发生改变的量
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开头。
6、进制转换
  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

posted @ 2019-12-20 21:30  溯鸣  阅读(365)  评论(0编辑  收藏  举报