您的位置:首页 > 编程语言 > Java开发

java学习笔记第02天--java语言基础

2018-03-31 10:04 253 查看
关键字关键字是指在java系统中已经赋予了特殊含义的单词。关键字的特点是全部都是小写字母。常用或者常见的关键字见下:
定义数据类型的关键字
classinterfacebyteshortint
longfloatdoublecharboolean
void    
定义流程控制的关键字
ifelseswitchcasedefault
whiledoforbreakcontinue
return    
布尔值truefalse  
引用类型空值null   
标识符用于给方法、变量、类和接口等命名的字符序列。组成规则:1、由26个英文字母大小写和数字、_、$符组成2、数字不能开头3、不可以使用关键字或者保留字作为标识符Java中的名称规范:•包名:多单词组成时所有字母都小写(以后详讲)–xxxyyyzzz•类名,接口名:多单词组成时,所有单词的首字母大写–XxxYyyZzz–Test•变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写(即驼峰语法) –xxxYyyZzz–main•final变量名:所有字母都大写,多单词时单词之间用下划线分隔–XXX_YYY_ZZZ–MAX_VALUE•在命名时,为了提高阅读性,要尽量做到见名知意。
常量与变量java中的常量大体上分为两种:1.字面量常量(字面量表示不能改变的数值(程序中直接出现的值))2.自定义常量(后面讲)   Java中常量(字面量)的分类:    1,整数常量:直接出现的整数    2,小数常量:直接出现的小数    3,布尔(boolean)型常量:只有两个值:true 和 false    4,字符常量:将一个数字,字母或者符号用单引号('')括起来    5,字符串常量:将一个或者多个字符用双引号("")括起来    6,null常量:只有一个数值:null示例:public class ConstantDemo{    public static void main(String[] args){             System.out.println(100);//整数常量       System.out.println(3.14);//浮点数常量       System.out.println(true);//布尔型常量       System.out.println(false);//布尔型常量       System.out.println('a');//字符常量       System.out.println('中');//字符常量       // System.out.println('');//字符常量不能为空       //System.out.println('ab');//字符常量只能出现一个字符       System.out.println('@');//ok       System.out.println(' ');//ok       System.out.println("");//字符串常量       System.out.println("H");//字符串常量       System.out.println(" ");//字符串常量    }}
进制介绍及转换对于整数,有四种表现形式:二进制:由0,1组成 ,满2进1.用0b/0B开头表示,只能表示0,1两种状态八进制:由0-7组成 ,满8进1. 用0开头表示十进制:由0-9组成 ,满10进1.十六进制:由0-9,A-F组成,满16进1. 用0x/0X开头表示
进制的基本转换–十进制  二进制 互转•十进制转成二进制  除以2取余数,将余数倒排•二进制转成十进制  乘以2的幂数,将结果相加–十进制 八进制 互转–十进制 十六进制 互转二进制和八进制,十六进制互转(8421法则)
八进制和十六进制出现的原因:简化书写和记忆


十进制数转换到其他进制数,除以进制数,直到商为0,并将余数进行倒排。例如:十进制转二进制


例如:十进制转八进制



例如:十进制转十六进制


其他进制数转换为十进制,是用每一位的系数乘以进制的n次幂(从右向左,从0开始),再进行求和。例如:二进制转换为十进制:


例如:八进制转换为十进制


例如:十六进制转换为十进制


二进制常用的进制转换,除了转换为十进制外,还会转八进制和十六进制。例如:二进制转八进制的实现过程:三位一组,计算对应的十进制,并结合即可


例如:二进制转十六进制的实现过程:四位一组


从上面多个例子中,我们可以不难发现有种规律,这个规律就叫做8421法则二进制和十进制互相转化是,将常用的四位二进制数表示的十进制数变成规律,方便计算.例如:有如下二进制位,那么它们分别代表了8421,基数为1,表示在结果中加上对应的数,如果基数为0,则在最终的结果中不用加它对应的数.以1 1 1 1为例:各个位上代表的数分别为8421,并且每位上的数都是1,说明在结果中都加上,所以总的结果是8+4+2+1 = 15 1 0 0 1    表示结果中有:8 和 1,并没有4和2 ,所以总的结果是8+1=9
8421法则在二进制转换成八进制:       111 001        7   1   --> 0718421法则在二进制转换为十六进制:     1001   1010    9      a       --> 0X9A在八进制转二进制,或者十六进制转二进制时同样适用.
原码、反码及补码正数的原码,反码,补码:都一样+7对应的二进制是: 0000 0111 ,既是+7的原码,也是它的反码和补码.
负数:和正数的存储方式不同,负数都是以补码形式存储的.而负数的补码计算的过程是:    把负数的原码除了符号位取反之后再+1.但是,观察求-7,-12的补码的过程+7         0      000 0111-7          1       111 1001 +12        0      000 1100-12        1      111 0100发现规律如下:求一个负数的表示形式:    先求其对应正数的表示形式,然后,从右往左,遇到第一个1,从这个1开始,包含这个1,右边保持不变,左边全取反,就是这个负数的表示形式.练习:求-20的存储形式: 先求出对应正数的二进制形式,再利用规律即可得到负数的表示形式.+20   0001 0100    -20   1110 1100总结的规律可以反过来使用:从一个负数的补码,也可以直接得到对应的正数的二进制形式. 
练习:给定一个二进制数,求其对应的十进制数.思路:    先判断符号位,如果是0,直接使用位权展开法求.    如果是1,先利用规律求出对应的正数的表示形式,再利用位权展开法求出正数对应十进制数,然后取相反数.练习:给定二进制位,求其对应的十进制数是多少?1000 1100    -116根据规律算出的正数的二进制数:0111 0100= 64 + 32+ 16 + 4 =  96+20 = 116练习:1111 1111         -10000 0001         1总结:    全1表示的数是-1.练习:1000 0000                   -1281000 0000         用位权展开法计算结果是:128
变量内存 内存就是程序运行的地方,存放着数据和指令,不同的数据存储在不同的空间,互不影响,内存空间使用之前必须先申请。如果一个数据已经存储到内存中了,怎么找到它呢?只要在申请空间的时候,给这个空间起一个名字就可以了,使用变量的时候,通过变量名就可以找到变量的值了。变量的概念:1、内存中的一块存储区域2、该区域有自己的名称(变量名)和类型(数据类型)3、定义变量就是为了使用内存空间。变量的三个要素:类型(数据类型:能存放的数据类型)变量名(标识符:通过标识符可以访问内存空间的值)值(需要存储的内容)定义变量的格式:格式一:数据类型 变量名 = 初始值;格式二:数据类型 变量名;变量名 = 初始值;变量的作用域:变量定义的{}就是变量的作用域,变量只能在自己的作用域内有效,出了定义变量的作用域就不能再使用了。

基本数据类型介绍


基本数据类型:四类八种引用数据类型:类、接口和数组整数默认类型:int 小数默认类型:double字符串是类:String,是引用数据类型
基本数据类型的类型转换:1、隐式转换:从小范围到大范围的转换long lon = 120;2、显示转换:从大范围到小范围的转换byte b = (byte)120L;基本数据类型隐式转换图:


 boolean类型不参与类型的转换和算术的运算。
问题思考:1、System.out.println('a')与System.out.println('a'+1)的区别System.out.println('a')是直接打印字符aSystem.out.println('a'+1)是将ASCII码中的'a'对应的值与1进行相加。
2、byte b1=3,b2=4,b;b=b1+b2;b=3+4;哪句是编译失败的呢?为什么呢?b=b1+b2;//会失败,错误: 不兼容的类型: 从int转换到byte可能会有损失更准确的解释是:凡是byte类型的数一旦参与算术运算会自动转换为int型,所以系统会提示从int转换到byte可能会有损失,这个地方需要扩展下,比如float类型的数一旦参与算术运算会自动转换为double类型,这个需要明确。
3、double d = 3.14;int i = (int)d;System.out.println(d);//强转之后的d值是?强转之后的d值还是3.14.原因为:虽然d强制转换为int类型,,转换之后变为了3,并将值3存入到变量i中了,但是需要打印的是d,即还是原来的3.14,如果打印i,则i值为3,可以测试下:


4、面试题byte b = 130;以上语句是否正确?如果想让赋值语句变得正确,如何更改?赋值之后的结果又是多少呢?以上语句不正确,130超出了byte类型的范围,其范围是-128~127,如果让赋值语句变得正确,需要对其进行强转,byte b = (byte)130,结果为:-126结果是这样得出来的:130 二进制表示: 1000 0010 (可以看出最高位是1,表示是一个负数)求一个负数的表示形式:    先求其对应正数的表示形式,然后,从右往左,遇到第一个1,从这个1开始,包含这个1,右边保持不变,左边全取反,就是这个负数的表示形式.那么结果为:二进制表示0111 1110 (这是正数的表示结果:126)所以原来的数则为-126
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: