• Java学习 第三章 java基础(一)


     

    一、 计算机进制转换:二进制、八进制、十进制、十六进制互转

    计算机系统数制概述

        • 数制是一组固定的符号和统一的规划来表示数值的方法;
        • 计算机底层使用的数制是二进制;
        • 用Java编程实用的是十进制。Java底层仍使用二进制;
        • 计算机常用的数制还有八进制和十六进制;

    十进制的基本数字0~9,逢十进位。

    10称做“基数”,10^n(10的n次幂)被称作“权”。

    二进制的基本数字是0、1,逢2进位。

    二进制的基数为2,权为2^n(2的n次方)。

    十六进制基本数字:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,逢十六进位

    十六进制是二进制的简写,方便专业人员书写二进制数据。

    16进制的基数是16,权为16^n(16的n次方)

    在Java代码中十六进制用0X或0x做前缀(0是数字,不是字母)。

    示例:5E十六进制=5*16^1+14*16^0 = 80+14 =94;

    二进制转换成十六进制 规则: 四位二进制数相当于一位十六进制数。

    十进制数转换二进制:规则:不断除以2,保留余数,商为0时不再除2.

    十进制数转换十六进制:规则: 不断除以16,保留余数,商为0时不再除16.

    二、变量与数据类型

    1、概述

    Java 定义了基本数据类型、引用数据类型和自定义数据类型;

    2、栈空

        • 栈空间存取数据的效率高;
        • 栈中的数据按“先进后出”的方式管理;
        • 栈空间存储空间较小,不能存放大量的数据;
        • JMV将基础数据类型的数据存放在栈空间;

    3、堆空间

        • 堆空间存取数据的效率最低;
        • 数据存放的位置随机分配;
        • 堆空间存储数据的空间大,能存放大容量的数据;

     

    三、变量的定义和变量使用的原因

    变量:可变的量;

    常量:不可变的量;

    字面量:Java的变量和常量中存放的具体数据成为字面量;

    计算机的高级语言普遍使用变量来管理内存中存储的数据。

    变量管理引用类型的数据:

    四、变量的命名、定义和初始化

    1、变量的命名

        • 首字母是英文字母、$或下划线,由字母、数字、下划线组成;
        • 变量的命名遵循见名知义的原则。
        • Java变量名建议不用中文。
        • 变量名首字母不用大写字母。
        • 用驼峰命名法命名多个单词组成的变量名。eg:sumScore
        • 变量名不要使用Java关键字。

    2、变量的定义

    定义变量:每个变量必需属于一种类型。

    类型  变量名1,变量2,…,变量n;

    e.g: byte score; //保存单科分数

    short age; //保存年龄

    int sumScore; //保存总分

    3、变量的初始化

    赋值 = 

    e.g:  age = 18;

    score = 60;

    sumScore = 600;

    五、变量的作用域

    1、java用一对大括号作为语句块的范围,称为作用域。

    2、作用域中的变量不能重复定义。

    3、离开作用域,变量所分配的内存空间将为JVM回收。

    六、基础数据类型的包装类

    Java为基础数据类型提供了对应的类,这些类称作包装类,如下图

    1、包装类中封装了一些很实用的方法和常量。例如:Byte.MIN_VALUE是Byte类中的一个常量,存放了byte类型数据的最小值。

    2、包装类在集合中用来自定义集合元素的类型。

    3、使用包装类

    Integer.MIN_VALUE: int类型的最小值:-2^31

    Integer.MAX_VALUE: int类型的最大值:2^31-1

    int Integer.parseInt(String sInteger);

    作用:将字符串类型的整数转换为int类型的数据。

    String Integer.toBinaryString(int value);

    作用:将十进制数转化为二进制,返回结果String类型。

    String Integer.toHexString(int value);

    作用:将十进制数转换为十六进制,返回结果String类型。

    七、二进制补码

    1、概述

    计算机系统的内部一二进制形式存储数据。

    在Java程序中输入的十进制的数据都会被自动转换为二进制,Java内部也以二进制来进行数值运算,但返回的结果是是进制。

    2、补码规则

        • 在计算机系统中,数值一律用二进制的补码来储存。
        • 二进制的最高位是符号位,0表示正数,1表示负数。
        • 正数的值是其本身,负数的值是最高位(符号位)不变,其它位逐位取反,再加1.  
        • 两数相加,若最高位(符号位)有进位,则进位被舍弃。

    3、为什么使用补码

        • 可以将符号位和其他位统一处理。
        • 最高位不再表示数值,而是作为符号位,正好将数值折半,即一半是0至正数,一半是负数。eg :4位 二进制数共有16个数,用补码表示,则一半是0~7,一半是-1~-8. 8位 二进制数共有256个数,用补码表示,则一半是0~127,一半是-1~-128.
        • 减法也可按加法来处理。

    4、补码运算的特征

        • 计算机中正数和负数的关系是取反加一。
        • 补码运算是封闭的:运算结果保留在补码范围之内,超范围就溢出。
        • 4位二进制补码最多能表示2^4(16)个数,数的范围是-8~7.
        • 8位二进制补码最多能表示2^8(256)个数,数的范围是-128~127.
        • 16位二进制补码最多能表示2^16(65536)个数,数的范围是-32768~32767.
        • 32位二进制补码最多能表示2^32个数,数的范围是-2^31~2^31-1.

    5、补码运算的原理

    正数+负数 = 模

    模:某种类型数据的总数,例如:

    4位二进制的模是2^4=16

    因此,负数=模-正数,这就是逐位取反加1的原因。

    八、整数、浮点、字符类型

    1、整数类型

        • Java有四种整数类型:byte、short、int、long。
        • Java默认整数计算的结果是int类型。
        • 整数的字面量是int类型。
        • 若字面量超过int类型的最大值,则字面量是long类型,那么后面要用L(或l)表示该值是long类型。eg: long longValue = 300000000L  

    2、浮点类型

        • 浮点类型用于表示小数的数据类型。
        • 浮点数原理:也就是二进制科学计数法。
        • Java的浮点类型有float和double两种。
        • Java默认浮点类型计算的结果是double类型,字面量也是double类型。若要给float类型的变量赋字面量的值,则要在字面量后面加F(或f)。eg : float f=5.3;将会出现编译错误,正确的赋值是:float f=5.3f;

    浮点数科学计算法:

        • 十进制浮点数科学计数法:219345=2.19345*(10^5)
        • 二进制浮点数科学计数法:10111=1.0111*(2^100)

    float类型:

        • float类型共32位,1位为符号位,指数8位,为数32位。
        • float的精度是23位(即能精确表示23位的数,超过就被截取了)。小数是以尾数长度来表示精确度的,比如pi=3.1415的精度是4位。
        • float存储数据的范围大于int类型,但精度比int要小,因为int的精度是31位。

    double类型

        • double类型,1位符号位,11位指数,52位尾数。
        • double范围远远大于long,但double精度不如long(long存储数据的位数是63位)。

    浮点运算的特点:

    浮点运算就是实数运算,由于计算机智能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。

    3、字符类型

        • char类型的字面量可以是一个英文字母、字符或者一个汉字,并且由单引号包括。eg:’A’.
        • Java底层使用一个16位的整数来处理字符类型,该数值是一个字符的unicode编码值。

    unicode编码:

        • unicode编码是全球范围内的编码方法。
        • unicode编码的英文部分与ASCII码兼容(ASCII表示范围0~128),同时英文字符和数字是连续编码的。
        • Java在处理char类型的数据时,在底层是按unicode码来处理的。

    编码:

    计算机硬件系统智能用0和1表示数,我们人为地做了规定,某个数还可以表示一个字符。eg:65表示A。

     

     

    参考:极客学院课程 http://ke.jikexueyuan.com/zhiye/javaweb/

  • 相关阅读:
    C#线程池
    C#.Net前台线程与后台线程的区别
    ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler)(转)
    ASP.NET Core 2.1 : 十四.静态文件与访问授权、防盗链(转)
    ASP.NET Core 2.1 : 十三.httpClient.GetAsync 报SSL错误的问题(转)
    ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件(转)
    ASP.NET Core 2.1 : 十一. 如何在后台运行一个任务(转)
    ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1(转)
    ASP.NET Core 2.0 : 九.从Windows发布到CentOS的跨平台部署(转)
    ASP.NET Core 2.0 : 八.图说管道,唐僧扫塔的故事(转)
  • 原文地址:https://www.cnblogs.com/lulushen/p/7891739.html
Copyright © 2020-2023  润新知