#码神心得_02# java基础知识
2016-05-16 22:59
567 查看
这是来码神Android的第二次课程内容,主要学习了有关java的一些基础知识
1、Java标识符:对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符。2、Java修饰符:public private protected default abstract final static
3、抽象类:由abstract修饰的类,若一个类中有一个或以上抽象方法,则必须把此类声明为抽象类;抽象方法只有方法体,并没有具体的实现方法。继承了抽象类的子类必须实现父类中的所有抽象方法。
4、反射机制:在运行状态中,对于任何一个类,都可以知道其中的属性和方法;对于任何一个对象,都可以调用其属性和方法。
5、强类型与弱类型:Java是一种强类型语言,指的是所声明的变量,都必须指定其类型,例如int i = 1;而js则是一种弱类型语言,所声明的变量并不需要指定其类型。
6、8种基本数据类型:整型:byte short int long 分别占1,2,4,8个字节 long a = 111111111111L;
浮点型:float double
字符型:char
逻辑型:boolean
7、strictfp:精确浮点。使用strictfp关键字修饰浮点运算可以避免在不同机器上运算的精确度不一的问题。
8、堆栈:堆栈是在内存中的一种数据结构。
堆:随机分配,存储容量大,但效率较低,主要存放引用数据类型
栈:存取效率高,但容量小。主要存放基本数据类型
9、命名:可以用数字,字母,_,$开头。
类:第一个字母大写
方法:驼峰式命名
变量:尽量用小写
10、变量作用域:在同一个作用域下,同一个变量名不得重复声明。变量在出了作用域之后,将会被jvm回收。
11、类的调用:类与类之间可以相互调用,但是并不建议如此,会降低程序性能。
12、注释:两种方式:①// ②/*....*/
①一般用来注释一些细节,例如方法内的某些变量的声明
②用来对整个类的说明,和对方法的功能说明
类注释:
/* * @Description:一句话描述这个类的作用 * @author: HongXin * @date: 2016/5/17 * @version: 1.0 */
</pre><pre class="java" name="code"><span style="font-size:18px;"><span style="font-family:Microsoft YaHei;">方法注释:</span></span> /* 猫吃东西 * @parm:food{String} 食物 * @return:{String} 返回结果是xxx */
13、原码、反码、补码的转换:最高位都为符号位,“0”正“1”负
原码:与2进制相同,最高位为符号为
反码:相对于原码,符号位不变,其余按位取反
补码:相对于反码,末位加“1”
关于补码-128的想法:
原码表示范围:(-127~-0)+(0~127)
反码表示范围:(-127~-0)+(0~127)
补码表示范围:-128~127
①由表示范围来看,补码相比于原码和补码少了一个“-0”,而多了一个“-128”
将原码(-0)1000 0000 (原)转换成补码→1000 0000(补),而补码并没有-0的概念,那么1000 0000用来干啥?→充当-128的使命,即-128的补码表示形式为1000 0000
②根据补码的加法运算: -1 + -127 = -128
原码:1000 0001 1111 1111
补码:1111 1111 + 1000 0001 = 1000 0000
故,补码中-128用1000 0000表示
③抛弃补码的表示范围不谈,假若补码有-0的概念,那么-0的补码表示形式必然为1000 0000
那么,根据②中的运算,(-1)+(-127)由补码计算得出结果也为1000 0000,这就相当于(-1)+(-127) = 1000 0000 =(-0)明显就不合逻辑
那么问题来了:到底该让1000 0000表示-0还是-128呢??
姑且将二进制扩大为16位来看看
-127→-0000 0000 0111 1111 -128→-0000 0000 1000 0000 -129→-0000 0000 1000 0001
原码→ 1000 0000 0111 1111 原码→ 1000 0000 1000 0000 原码→ 1000 0000 1000 0001
补码→ 1111 1111 1000 0001 补码→ 1111 1111 1000 0000 补码→ 1111 1111 0111 1111
通过认真比较,可以看出,在16位二进制表示中,-127,-128,-129的补码表示形式是连续的,既然如此,可以推导出-128的补码只有在1000 0000这个位置可以表示,其他的位置都被其他的数表示了。假若把补码1000 0000表示“-0”,那么补码“-128”将找不到其他位置供其表示,即“-128”将无从表示
因此,1000 0000只能舍弃“-0”(因为+0与-0基本没区别),从而表示“-128”.
以上3点均为个人想法,如有错误还请海涵~~
课后作业:
二进制描述78、-123的原码,反码,补码78 -123
二进制表示: 0100 1110 -0111 1011
原码: 0100 1110 1111 1011
反码:
0100 1110 1000 0100
补码: 0100 1110 1000 0101
(详细运算规则请看总结第13点~)
相关文章推荐
- Java面向对象之抽象类
- java32java当中的IO(一)
- Struts中的OGNL表达式语言1/Struts标签与OGNL表达式语言实例演练2/Struts2常用标签总结3
- Java并发编程:volatile关键字解析
- 小白学习java到底需不需要不求甚解?
- JDK源码学习(3)-LinkedHashMap源码学习
- 【Java】Java虚拟机------内存划分
- JVM系列:四、Java类加载机制总结
- eclipse安装JAVA反编译插件
- spring Transaction
- JDK 源码解析 —— Executors ExecutorService ThreadPoolExecutor 线程池
- Java面向对象之多态
- [javaSE] 数组(排序-选择排序)
- Java中补码的规则
- 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
- hdu1502 Regular Words 【dp+java】
- springmvc之hibernate整合
- Java之properties文件读取
- JDK1.8源码中的编程习惯
- springmvc之定时器