A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

sunjiajing

初级黑马

  • 黑马币:21

  • 帖子:6

  • 精华:0

© sunjiajing 初级黑马   /  2019-3-27 14:41  /  840 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进制
二进制计算机中的数据不同于人们生活中的数据,人们生活采用十进制数,而计算机中全部采用二进制数表示,它只包含0、1两个数,逢二进一,1+1=10。每一个0或者每一个1,叫做一个bit(比特)。
下面了解一下十进制和二进制数据之间的转换计算。
十进制数据转成二进制数据:使用除以2获取余数的
二进制数据转成十进制数据:使用8421编码的
常用DOS命令
按下Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口。
打开DOS命令行后,看到一个路径 c:\user 就表示我们现在操作的磁盘是c盘。
命令                   操作符号
盘符切换命令       盘符名:
查看当前文件夹       dir
进入文件夹命令       cd 文件夹名
退出文件夹命令       cd..
退出到磁盘根目录    cd\
清屏                         cls
Java语言开发环境搭建
Java虚拟机——JVM
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
JRE 和 JDK
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。
我们想要开发一个全新的Java程序,那么必须安装 JDK。
HelloWorld入门程序
1. 在 d:\day01 目录下新建文本文件,完整的文件名修改为 HelloWorld.java ,其中文件名为 HelloWorld ,后缀名必须为 .java 。2. 用记事本打开使用notepad++记事本软件。3. 在文件中键入文本并保存,代码如下:
public class HelloWorld {public static void main(String[] args) {
System.out.println("Hello World!");
}
文件名必须是 HelloWorld ,保证文件名和类的名字是一致的,注意大小写。
每个字母和符号必须与示例代码一模一样。
第一个 HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的 Java源文件 编译成JVM可以看懂的 字节码文件。
编译Java源文件
在DOS命令行中,进入Java源文件的目录,使用 javac 命令进行编译。
命令:javac Java源文件名.后缀名
举例:javac HelloWorld.java
编译成功后,命令行没有任何提示。打开 d:\day01 目录,发现产生了一个新的文件 HelloWorld.class ,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。
Java源文件的编译工具 javac.exe ,在JDK安装目录的bin目录下。但是由于配置了环境变量,可以再任意目录下使用。
运行Java程序
在DOS命令行中,进入Java源文件的目录,使用 java 命令进行运行。
命令:java 类名字
举例:java HelloWorld
java HelloWord 不要写 不要写 不要写 .class
Java程序 .class文件 的运行工具 java.exe ,在JDK安装目录的bin目录下。但是由于配置了环境变量,可以再任意目录下使用。
入门程序说明
编译和运行是两回事编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
关于main方法
main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从main方法这里开始执行。
添加注释comment
注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
Java中有单行注释和多行注释
单行注释以 //开头 换行结束
多行注释以/*开头 以*/结束
关键字keywords
关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。
HelloWorld案例中,出现的关键字有 public 、 class 、 static 、 void 等,这些单词已经被Java定义好,全部都是小写字母,notepad++中颜色特殊。
关键字比较多,不能死记硬背,学到哪里记到哪里即可。
标识符
标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
命名规则: 硬性要求
标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
标识符不能以数字开头。
标识符不能是关键字。
命名规范: 软性建议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。
常量
常量:是指在Java程序中固定不变的数据。
类型                                                含义                                                        数据举例
整数常量                                      有的整数                                             0,1, 567, -9
小数常量                                     所有的小数                                           0.0, -0.1, 2.55
字符常量                          单引号引起来,只能写一个字符,必须有内容          'a' , ' ', '好'
字符串常量                       引号引起来,可以写多个字符,也可以不写         "A" ,"Hello" ,"你好" ,""
布尔常量                                 只有两个值(流程控制中讲解)                   true , false
空常量                                        只有一个值(引用数据类型中讲解)                 null
变量和数据类型
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量
。数学中,可以使用字母代替数字运算,例如 x=1+5 或者 6=x+5。
程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比如x保存5,x也可以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
数据类型分类
Java的数据类型分为两大类:
基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
引用数据类型:包括 类 、 数组 、 接口。
基本数据类型四类八种基本数据类型:
数据类型                    关键字                      内存占用                         取值范围
字节型                         byte                         1个字节                          ~128~127            
短整型                         short                        2个字节                         -32768~32767
整型                             int(默认)              4个字节                         -231次方~2的31次方-1
长整型                         long                          8个字节                        -2的63次方~2的63次方-1
单精度浮点数               float                         4个字节                        1.4013E-45~3.4028E+38
双精度浮点数               double(默认)       8个字节                        4.9E-324~1.7977E+308
字符型                           char                        2个字节                        0-65535
布尔类型                       boolean                   1个字节                        true,falst
Java中的默认类型:整数类型是 int 、浮点类型是 double。
变量的定义
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值
格式:数据类型 变量名 = 数据值;
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
注意事项
变量名称:在同一个大括号范围内,变量的名字不可以相同。
变量赋值:定义的变量,不赋值不能使用。
数据类型转换
⾃动转换
⼀个 int 类型变量和⼀个 byte 类型变量进⾏加法运算, 结果会是什么数据类型?
运算结果,变量的类型将是 int 类型,这就是出现了数据类型的⾃动类型转换现象。
⾃动转换:将 取值范围⼩的类型 ⾃动提升为 取值范围⼤的类型 。
转换规则
范围⼩的类型向范围⼤的类型提升, byte、short、char 运算时直接提升为 int 。
byte、short、char-->int-->long-->float-->double
强制转换
将 1.5 赋值到 int 类型变量会发⽣什么?产⽣编译失败,肯定⽆法赋值。
想要赋值成功,只有通过强制类型转换,将 double 类型强制转换成 int 类型才能赋值。
强制类型转换:将 取值范围⼤的类型 强制转换成 取值范围⼩的类型 。
⽐较⽽⾔,⾃动转换是Java⾃动执⾏的,⽽强制转换需要我们⾃⼰⼿动执⾏。
转换格式:
数据类型 变量名 = (数据类型)被转数据值;
将 1.5 赋值到 int 类型,代码修改为:
同样道理,当⼀个 short 类型与 1 相加,我们知道会类型提升,但是还想给结果赋值给short类型变
量,就需要强制转换。
// double类型数据强制转成int类型,直接去掉⼩数点。
int i = (int)1.5
同样道理,当⼀个 short 类型与 1 相加,我们知道会类型提升,但是还想给结果赋值给short类型变
量,就需要强制转换。
强烈注意
浮点转成整数,直接取消⼩数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
// 定义s为short范围内最⼤值
short s = 32767;
// 运算后,强制转换,砍掉2个字节后会出现不确定的结果
s = (short)(s + 10);
对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围, 那么javac编译器将会⾃动
隐含地为我们补上⼀个(byte)(short)(char)。
1. 如果没有超过左侧的范围,编译器补上强转。
2. 如果右侧超过了左侧范围,那么直接编译器报错。
在给变量进⾏赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量, 那么编译器javac将
会直接将若⼲个常量表达式计算得到结果。 short result = 5 + 8; // 等号右边全都是常量,没有任何变
量参与运算 编译之后,得到的.class字节码⽂件当中相当于【直接就是】: short result = 13; 右侧的
常量结果数值,没有超过左侧范围,所以正确。
这称为“编译器的常量优化”。
但是注意:⼀旦表达式当中有变量参与那么就不能进⾏这种优化了。
ASCII编码表
在计算机的内部都是⼆进制的0、1数据,如何让计算机可以直接识别⼈类⽂字的问题呢?就产⽣出了
编码表的概念。
编码表 :就是将⼈类的⽂字和⼀个⼗进制数进⾏对应起来组成⼀张表格。
运算符
算数运算符包括:
+ 加法运算,字符串连接运算
- 减法运算
* 乘法运算
/ 除法运算
% 取模运算,两个数字相除取余数
++ 、 -- ⾃增⾃减运算
Java中,整数使⽤以上运算符,⽆论怎么计算,也不会得到⼩数。
++ 运算,变量⾃⼰增⻓1。反之, -- 运算,变量⾃⼰减少1,⽤法与 ++ ⼀致。
独⽴运算:
变量在独⽴运算时, 前++ 和 后++ 没有区别 。
变量 前++ :例如 ++i 。
变量 后++ :例如 i++ 。
混合运算:
和其他变量放在⼀起, 前++ 和 后++ 就产⽣了不同。
变量 前++ :变量a⾃⼰加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结
果都是2。
++ 运算,变量⾃⼰增⻓1。反之, -- 运算,变量⾃⼰减少1,⽤法与 ++ ⼀致。
变量 后++ :变量a先把⾃⼰的值1,赋值给变量b,此时变量b的值就是1,变量a⾃⼰
再加1。a的结果是2,b的结果是1。
+ 符号在字符串中的操作:
+ 符号在遇到字符串的时候,表示连接、拼接的含义。
"a"+"b"的结果是“ab”,连接含义
赋值运算符
赋值运算符包括:
= 等于号
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
%= 取模等
赋值运算符,就是将符号右边的值,赋给左边的变量。
⽐较运算符
⽐较运算符包括:
== ⽐较符号两边数据是否相等,相等结果是true。
< ⽐较符号左边的数据是否⼩于右边的数据,如果⼩于结果是true。
> ⽐较符号左边的数据是否⼤于右边的数据,如果⼤于结果是true。
<=
⽐较符号左边的数据是否⼩于或者等于右边的数据,如果⼤于结果是
false。
>=
⽐较符号左边的数据是否⼤于或者等于右边的数据,如果⼩于结果是
false。
!= 不等于符号 ,如果符号两边的数据不相等,结果是true。
⽐较运算符,是两个数据之间进⾏⽐较的运算,运算结果都是布尔值 true 或者 false 。
逻辑运算符
辑运算符包括:
&& 短路与
1. 两边都是true,结果是true
2. ⼀边是false,结果是false
短路特点:符号左边是false,右边不再运算
|| 短路或
1. 两边都是false,结果是false
2. ⼀边是true,结果是true
短路特点: 符号左边是true,右边不再运算
! 取反 1. ! true 结果是false
2. ! false结果是true
逻辑运算符,是⽤来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
三元运算符
三元运算符格式:
数据类型 变量名 = 布尔类型表达式?结果1:结果2
三元运算符计算⽅式:
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马