zoukankan      html  css  js  c++  java
  • JavaSE基础知识

    Java基础知识

    一、基础知识

    1.java命名规则

    • 由26个英文字母大小写,0-9 ,_或 $ 组成  
    • 数字不可以开头。
    • 不可以使用关键字和保留字,但能包含关键字和保留字。
    • Java中严格区分大小写,长度无限制。
    • 标识符不能包含空格。

    2.常量与变量

    • 常量:一个数字就表示常量、常量内容是不会改变的。常量可以描述为内容不可变的规定内容标识,在java中也可意思static final修饰的静态内容指向不可变的常量空间。
    • 变量:将内存中的某个内存块保留下来以供程序使用,里面的内容是可变的。一片内存区域,其内容指向可以改变即可定义为变量。

    ①变量的分类(按照类型划分)

      对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

     

    ②两者都有生命周期,但局部变量除形参外,需显式初始化。

     

    二、基本数据类型

      Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 中类型表示范围如下:

    • byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
    • short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
    • int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

      ▶int类型只保留整数位不保留小数位,总共32位,第1位为符号位,则数据位有31位,2的31次方等于214748365E9,则int的范围在负的2的31次方到正的2的31次方减1之间(为什么要减一?因为有0存在)。

    • long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
    • float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

      ▶float在内存中的存储遵循IEEE 754标准。在C/C++中,float类型占4个字节即32位 ,这32位分成了3部分:

    1. 符号位:转化成二进制后,第31位。 0代表正数,1代表负数
    2. 阶码:30-23位,转化成规格化的二进制之后与127之和
    3. 尾数:22-0位

      ▶float的有效位为7位,小数位在计算机中可以显示7位,但只有前6位是准确的,整数加小数最多显示8位,其中从整数部分开始算起,这样一来,当整数位较长时会影响小数位的精度。float和double在内存中的格式为:

     

      上面的存储结构,由于字节太多,所以后面使用的十六进制表示,7代表3位,f代表4位

      ▶从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更高的精度以及更大的数值。

    1. float的正数范围:3.40282346638528859811704183484516925440e+38~1.401298464324817070923729583289916131280e-45
    2. double的正数范围:1.797693134862315708145274237317043567981e+308~4.940656458412465441765687928682213723651e-324

      可以看出来double的表示的范围比float大,而且由于尾数增加,实际上,精确度也比float高,但这样的优势带来的就是更低的计算效率,虽然个人觉得不论是float还是double计算效率都被整形完爆,所以能够用整型操作,就尽量不要用浮点型。

      另外一个主要注意的则是,我们可以看到这里该数的表示范围并不像整形那样,直接可以表示0,而是是一个很大到一个很接近0的数值,所以很多情况下浮点数判断是否为0,不是直接跟0比较是不是相等,而是约定一个很小的数,如果小于这个数,就等于0

    • double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

      ▶double的有效位为16位,小数位在计算机中可以显示16位,但只有前15位是准确的,整数加小数最多显示17位,其中从整数部分开始算起,这样一来,当整数位较长时会影响小数位的精度

    • boolean:只有true和false两个取值。
    • char:16位,存储Unicode码,用单引号赋值。

    1.数据类型之间的转换

      数据类型的转换方式可分为“自动类型转换”及“强制类型转换”两种。

    • 自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:

     

    1. byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
    2. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。 
    3. 当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
    • 强制类型转换:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符‘()’,但可能造成精度降低或溢出,格外要注意。
    1. 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。如: String a = “43”; int i = Integer.parseInt(a);
    2. boolean类型不可以转换为其它的数据类型。 

    三、运算符与表达式

      计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符

    1.算术运算符

      算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符:

     

    2.关系运算符

     

    3.位运算符

      Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。 位运算符作用在所有的位上,并且按位运算。

     

    4.逻辑运算符

     

    5.赋值运算符

     

    • 注意事项:

      如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。

    科学搬砖,勤劳致富
  • 相关阅读:
    python报错: invalid syntax
    python报错:not supported between instances of 'str' and 'int'
    python类型检查和类型转换
    python的input()函数
    为什么双击打开py文件时窗口瞬间关闭了?
    python条件判断语句
    python运算符的优先级
    JDK1.8 新特性(全)
    mysql事务详解
    Java判断指定日期是否为工作日
  • 原文地址:https://www.cnblogs.com/tag6254/p/9405250.html
Copyright © 2011-2022 走看看