学习Java拥有C的基础确实比较快速,但是同时,Java的思想也让我们更深刻理解到C这个比较古老的语言。可能当时学C就是只是学C,但是学习Java不同,因为更加便捷,它的思想,它的方法更让我们明白C语言的奥秘。
Java API文档
API文档存放着包,类等解释作用,是我们应用Java必不可少的工具。
因为Java简洁快速,所以细节很多,函数的作用也有很多,记是记不完的。所以API就体现了作用。我们可以根据包名类名等去寻找查询我们所需要的函数等工具,去完成简便我们的代码。这就是Java和C区别很大的地方,也是Java方便简洁的原因。
这篇文章对于API的解释不错。
运算符
算数运算符
对于“+”需要注意:
对于“/”需要注意:
为什么 d 明明是double类型,但是输出还是2.0呢?
这告诉我们在进行除法运算时,一定要给除数和被除数化为double类型,才能得到正确的double答案。
对于“%”需要注意:
负数的取余或者是其他取余,我们有些时候会定向思维,理解错误,运算错误,所以我觉得取余最好还是参考这个公式:
a % b = a - (int)a / b * b
对于“++”需要注意:
前++还是后++,在学习C的时候我们已经吃过不少亏,所以不过多阐述。
++i是先自增后赋值,i++是先赋值后自增。
这里一定要看清楚程序运行的顺序!!!!!!仔细判断到底自增还是赋值。
逻辑运算符
三元运算符
句式:变量=(条件)?expression1:expression2
上面的语句指出,如果条件返回true,则执行expression1,否则执行expression2,并将最终结果存储在变量中。
运算符优先级
scanner键盘输入语句
scanner类似于C语言中的scanf。
scanner用法
1.构造一个Scanner 类的对象,并且与标准输入流Sytem.in关联。
基本语法为:Scanner s = new Scanner (System.in) //创建了一个Scanner对象,Scanner为类名,s为对象名。
2.使用Scanner类相关的方法从控制台获取你需要的输入数据。//控制台也叫命令行,当你使用scanner方法后控制台会等待你输入数据,敲回车结束一个数据的输入。
后面可以用变量来接收输入:int day = myScanner nextInt();
把一个字符串转化为字符
我觉得这就是C语言中把首字符读入的getchar。
我们现在对Scanner运用并不深刻,到真正用他的时候可以借助API来搜索他的各种用法,这篇文章适合我们阅读留个印象。
进制(重重重重点)
对于整数,有四种表示方式:
二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
十进制:0-9 ,满 10 进 1。
八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。
十六进制:0-9 及 A(10)-F(15),满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。
转十进制
二进制转换成十进制:
规则:从低位开始,将每个数提出了来,乘2的(位数-1)的次方,然后求和。
八进制转换成十进制:
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 8 的(位数-1)次方,然后求和。
十六进制转换成十进制:
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 16 的(位数-1)次方,然后求和。
案例:请将 0x23A 转成十进制的数 0x23A = 10 * 16^0 + 3 * 16 ^ 1 + 2 * 16^2 = 10 + 48 + 512 = 570
其他进制转化(短除法)
十进制转换成二进制:
规则:将该数不断除以 2,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的二进制。 案例:请将 34 转成二进制 = 0B00100010
十进制转换成八进制:
规则:将该数不断除以 8,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的八进制。 案例:请将 131转成八进制 => 0203
十进制转换成十六进制:
规则:将该数不断除以 16,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的十六进制。
案例:请将 237 转成十六进制 => 0xED
二进制转换成八进制:
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
案例:请将 ob11010101 转成八进制 ob11(3)010(2)101(5) => 0325
二进制转换成十六进制:
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
案例:请将 ob11010101 转成十六进制 ob1101(D)0101(5) = 0xD5
八进制转换成二进制:
规则:将八进制数每 1 位,转成对应的一个 3 位的二进制数即可。
案例:请将 0237 转成二进制 02(010)3(011)7(111) = 0b10011111
十六进制转换成二进制:
规则:将十六进制数每 1 位,转成对应的 4 位的一个二进制数即可。
案例:请将 0x23B 转成二进制 0x2(0010)3(0011)B(1011) = 0b001000111011
原码,反码,补码
计算机里都是以补码的形式存储数据,电脑只能识别二进制的0和1,
一个字节(8位)为例
原码 :最高位符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。
反码:正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。
补码:正数的补码与原码一致,负数的补码是该数的反码加1。
以下是大致总结:
1.二进制的最高位表示正负,0表示正,1表示负。
2.正数的原码补码反码都一样(三码合一)。
3.负数的反码=它的原码符号位不变,然后其他位取反(就是以前是0,现在是1)。
4.负数的补码=反码+1。
5.0的反码补码都是0。
6.Java没有无符号数。
7.计算机运算看补码,我们看运算结果看原码。
位运算符
位运算是直接对整型数据的二进制进行运算。
标识符
(不能有“-”。;例如h-s是错误的)
进阶版命名规范
(1)包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.xjs.com
(2)类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: TankShotGame
(3)变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小 驼峰, 简称 驼峰法] 比如: tankShotGam
(4)常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
关键字与保留字
关键字:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词)。关键字中所有字母都为小写。
保留字:现有 Java 版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留 字 byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const
今天想吃清单点的,就比如说海鲜粥,以蟹黄为汤底,瓦罐为媒介,与海米一同炖煮,加入开背鲜虾还有蟹肉,鲍鱼等海鲜,或许可以加入少许麻酱,会有不一样的风味。淡黄色的粥,鲜香扑鼻,是其他肉粥带不来的美味。