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

#码神心得_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的想法:


(以下讨论的均为8位二进制)

原码表示范围:(-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点~)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: