文档章节

从基础学习JAVA开发---第一课数据类型

BruceKNIGHT
 BruceKNIGHT
发布于 2017/04/17 00:31
字数 3432
阅读 8
收藏 0

A:什么是常量

* 在程序执行的过程中其值不可以发生改变

* B:Java中常量的分类

* 字面值常量

* 自定义常量(面向对象部分讲)

* C:字面值常量的分类

* 字符串常量 用双引号括起来的内容

* 整数常量 所有整数

* 小数常量 所有小数

* 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号

* 布尔常量 较为特殊,只有true和false

* 空常量     null(数组部分讲解)

 

* D:案例演示

* 用输出语句输出各种常量。null不演示

 

###02.02_Java语言基础(进制概述和二,八,十六进制图解)(了解)

* A:什么是进制

* 进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

* 例如一周有七天,七进制,一年有十二个月,十二进制

* B:十进制的由来

* 十进制的由来是因为人类有十个手指

* C:二进制的由来

* 其实二进制来源与中国,请看史料记载

* 18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0)(1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最先进的。20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证明了莱布尼兹的原理是正确的,同时也证明了《易经》数理学是很了不起的。

* D:八进制的由来

* 任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。

* 所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。

* E:十六进制的由来

* 但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。

* F:不同进制表现同一个数据的形式特点

* 进制越大,表现形式越短

 

###02.03_Java语言基础(不同进制数据的表现形式)(掌握)

* A:二进制的数据表现形式

* 由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)

* B:八进制的数据表现形式

* 由0,1,…7组成。以0开头

* C:十进制的数据表现形式

* 由0,1,…9组成。整数默认是十进制的

* D:十六进制的数据表现形式

* 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

* E:案例演示

* 输出不同进制表现100的数据。

* 0b100

* 0100

* 100

* 0x100

 

###02.04_Java语言基础(任意进制到十进制的转换图解)(了解)

* A:任意进制到十进制的转换原理

* 系数:就是每一位上的数据。

* 基数:X进制,基数就是X。

* 权:在右边,从0开始编号,对应位上的编号即为该位的权。

* 结果:把系数*基数的权次幂相加即可。

* B:画图练习

* 二进制--十进制

* 八进制--十进制

* 十六进制--十进制

 

###02.05_Java语言基础(十进制到任意进制的转换图解)(了解)

* A:十进制到任意进制的转换原理

* 除积倒取余

* B:画图练习

* 十进制--二进制

* 十进制--八进制

* 十进制--十六进制

 

###02.06_Java语言基础(快速的进制转换法)(了解)

* A:8421码及特点

* 8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。

* B:通过8421码的方式进行二进制和十进制的相互转换

* C:二进制到八进制的简易方式

* D:二进制到十六进制的简易方式

 

###02.07_Java语言基础(原码反码补码)(了解)

* A:为什么要学习原码反码补码?

* 后面要学习强制类型转换,如果不知道有原反补会看不懂结果

* B:有符号数据表示法的几种方式

* 原码

* 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

* 通过一个字节,也就是8个二进制位表示+7和-7

* 0(符号位) 0000111

* 1(符号位) 0000111

* 反码

* 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

* 补码

* 正数的补码与其原码相同;负数的补码是在其反码的末位加1。

 

###02.08_Java语言基础(原码反码补码的练习)(了解)

* A:已知原码求补码

* 0b10110100

* B:已知补码求原码

* 0b11101110

 

###02.09_Java语言基础(变量的概述及格式)(掌握)

* A:什么是变量

* 在程序执行的过程中,在某个范围内其值可以发生改变的量

* B:变量的定义格式

* 数据类型 变量名 = 变量值;

* C:为什么要定义变量

* 用来不断的存放同一类型的常量,并可以重复使用

 

###02.10_Java语言基础(数据类型的概述和分类)(掌握)

* A:为什么有数据类型

* Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

* B:Java中数据类型的分类

* 基本数据类型

* 引用数据类型

* 面向对象部分讲解

* C:基本数据类型分类(4类8种)

* 整数型

* byte 占一个字节  -128到127

* short 占两个字  -2^15~2^15-1

* int 占四个字节 -2^31~2^31-1

* long 占八个字节 -2^63~2^63-1

* 浮点型

* float 占四个字节 -3.403E38~3.403E38  单精度

* double 占八个字节-1.798E308~1.798E308 双精度

* 字符型

* char 占两个字节 0~65535

* 布尔型

* boolean   

* boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小      

 

###02.11_Java语言基础(定义不同数据类型的变量)(掌握)

* A:案例演示

* 定义不同基本数据类型的变量,并输出

* 赋值时候注意float类型,long类型

 

###02.12_Java语言基础(使用变量的注意事项)(掌握)

* A:案例演示

* a:作用域问题

* 同一个区域不能使用相同的变量名

* b:初始化值问题

* 局部变量在使用之前必须赋值

* c:一条语句可以定义几个变量

* int a,b,c...;

 

###02.13_Java语言基础(数据类型转换之隐式转换)(掌握)

* A:案例演示

* a:int + int

* b:byte + int

* B:Java中的默认转换规则

* 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算

* C:画图解释byte+int类型的问题

 

###02.14_Java语言基础(数据类型转换之强制转换)(掌握)

* A:强制转换问题

* int a = 10;

* byte b = 20;

* b = a + b;

* B:强制转换的格式

* b = (byte)(a + b);

* C:强制转换的注意事项

* 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

 

###02.15_Java语言基础(面试题之变量相加和常量相加的区别)(掌握)

* A:案例演示

* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。

* byte b1 = 3;

* byte b2 = 4;

* byte b3 = b1 + b2;

* 从两方面去回答这个题

* b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值

* byte类型的变量在进行运算的时候,会自动类型提升为int类型

* byte b4 = 3 + 4;

* 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了

 

###02.16_Java语言基础(long与float的取值范围谁大谁小)(了解)

* 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的

* byte,short,char -- int -- long -- float -- double

 

* long: 8个字节

* float:4个字节

* IEEE754

* 4个字节是32个二进制位

* 1位是符号位

* 8位是指数位

* 00000000   11111111

* 0到255

* 1到254

* -126到127

* 23位是尾数位

* 每个指数位减去127

 

* A:它们底层的存储结构不同。

* B:float表示的数据范围比long的范围要大

* long:2^63-1

* float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

 

###02.17_Java语言基础(字符和字符串参与运算)(掌握)

* A:案例演示

* System.out.println('a');

* System.out.println('a'+1);

 

* 通过看结果知道'a'的值是多少,由此引出ASCII码表

* B:ASCII码表的概述

* 记住三个值:

* '0'  48

* 'A'  65

* 'a'  97

* C:案例演示

* System.out.println("hello"+'a'+1);

* System.out.println('a'+1+"hello");

* D:+在有字符串参与中被称为字符串连接符

* System.out.println("5+5="+5+5);

* System.out.println(5+5+"=5+5");

 

###02.18_Java语言基础(char数据类型)(掌握)

* A:char c = 97; 0到65535

* B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?

* 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节

* 所以,Java中的字符可以存储一个中文汉字

###02.19_Java语言基础(算术运算符的基本用法)(掌握)

* A:什么是运算符

* 就是对常量和变量进行操作的符号。

* B:运算符的分类

* 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符

* C:算数运算符有哪些

* +,-,*,/,%,++,--

* D:注意事项:

* a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符

* b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型

* c:/获取的是除法操作的商,%获取的是除法操作的余数

* %运算符

* 当左边的绝对值小于右边绝对值时,结果是左边

* 当左边的绝对值等于右边或是右边的倍数时,结果是0

* 当左边的绝对值大于右边绝对值时,结果是余数

* %运算符结果的符号只和左边有关系,与右边无关

* 任何一个正整数%2结果不是0就是1可以用来当作切换条件

 

###02.20_Java语言基础(算术运算符++和--的用法)(掌握)

* A:++,--运算符的作用

* 自加(++)自减(--)运算

* ++:自加。对原有的数据进行+1

* --:自减。对原有的数据进行-1

* B:案例演示

* a:单独使用:

* 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)

* b:参与运算使用:

* 放在操作数的前面,先自增或者自减,然后再参与运算。

* 放在操作数的后面,先参与运算,再自增或者自减。

 

###02.21_Java语言基础(算术运算符++和--的练习)(掌握)

* A:案例演示

* 请分别计算出a,b,c的值?

*

int a = 10;

int b = 10;

int c = 10;

 

a = b++;

c = --a;

b = ++a;

a = c--;

 

* B:案例演示

* 请分别计算出x,y的值?

 

int x = 4;

int y = (x++)+(++x)+(x*10);

* C:面试题

* byte b = 10;

* b++;

* b = b + 1;

* 问哪句会报错,为什么

 

###02.22_Java语言基础(赋值运算符的基本用法)(掌握)

* A:赋值运算符有哪些

* a:基本的赋值运算符:=

* 把=右边的数据赋值给左边。

 

* b:扩展的赋值运算符:+=,-=,*=,/=,%=

* += 把左边和右边做加法,然后赋值给左边。

 

###02.23_Java语言基础(赋值运算符的面试题)(掌握)

* A:案例演示

* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。

* short s=1;s = s+1;

* short s=1;s+=1;

 

###02.24_Java语言基础(关系运算符的基本用法及其注意事项)(掌握)

* A:关系运算符有哪些(比较运算符,条件运算符)

* ==,!=,>,>=,<,<=

* 注意事项:

* 无论你的操作是简单还是复杂,结果是boolean类型。

 

* "=="不能写成"="。

本文转载自:

BruceKNIGHT
粉丝 2
博文 8
码字总数 382
作品 0
南京
私信 提问
Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区
2018/05/09
0
0
干货系列1:Java互联网网站开发工程师 的技术提高与晋升路线(技术专精)

前几天写了自己对于Java软件开发工程师职业发展规划方面的一些感悟,陆续收到一些反馈,希望我能再就Java工程师不同的开发(职责)方向谈谈职业发展问题。(上一篇:Java软件开发工程师的自我...

半饱即好
2018/06/26
0
0
大数据开发培训:0基础学习Java编程语言有哪些知识点?

Java 技术通用、高效、具有平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等,学习Java首先要知道学习知识点有哪些。在这就用加米谷大数据培训...

加米谷大数据
2018/07/25
0
0
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0
java 7 入门书籍

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3版...

modernizr
2014/05/15
6.9K
9

没有更多内容

加载失败,请刷新页面

加载更多

前嗅教程:如何获取精准客源,提高销量

经常有人问嗅嗅,我是XX行业的,大数据能帮我做什么? • 可以给我带来客源吗? • 可以提高我的销量吗? • 可以增加我的利润吗? 今天嗅嗅就以生鲜供货为例,为大家讲一讲外卖平台那些事~...

forespider
25分钟前
1
0
浮窗插件

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>移动窗口</title> <style> body { margin: 0; padding: 0; width: 100%; height: 1000px; background: #eee; } /*示......

流年那么伤
29分钟前
2
0
关于 Jenkins master 共享 JENKINS_HOME 目录的实验

本文首发于:Jenkins 中文社区 作者:翟志军 审校:王冬辉,linuxsuren Jenkins master 的高可用是个老大难的问题。和很多人一样,笔者也想过两个 Jenkins master 共享同一个 JENKINS_HOME 的...

Jenkins中文社区
36分钟前
3
0
【重构】Spring Cloud OAuth 无Token调用源码封装

背景 重构-改善既有代码的设计,重构的目的是是软件更容易被理解和修改。 书接上回Spring Security OAuth 微服务内部Token传递的源码解析,本篇主要无token 调用过程中,代码的不断完善及其重...

冷冷gg
42分钟前
26
0
watchOS更新后 Apple Watch 4心电图功能已开始支持欧洲用户

苹果在发布 Apple Watch 4 系列时也发布了 ECG(心电图)功能,但这项功能仅适用于在美版 Apple Watch。对于其他地区的用户来说,访问该功能的唯一途径是在美国购买该设备。不过当 watchOS ...

linuxCool
51分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部