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。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。

JavaSE--基础知识的更多相关文章

  1. JavaSE基础知识总结

    最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...

  2. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  3. javaSE基础知识(走向编程的门口)— 更新完毕

    前言:玩儿编程最重要的一点:不要怕麻烦,感觉是在浪费时间: 能动手绝不哔哔:只要脑袋不傻,编程都是"一看就会,一练就废",开始学的时候,就算再基础的东西都建议手敲一遍 要有囫囵吞枣 ...

  4. JavaSE基础知识(3)—流程控制结构

    一.顺序结构 1.说明 程序从上往下依次执行,中间没有任何跳转或选择2.特点 变量必须遵循 “前向引用” (局部变量必须先声明.赋值,然后再使用!) 二.分支结构(条件) 1.说明 程序从两条或多条路 ...

  5. JavaSE基础知识(2)—变量和运算符

    一.变量 1.理解 概念:内存中的一块数据存储空间 2.变量的三要素 数据类型变量名变量值 3.变量的语法和使用步骤★ 步骤1:声明变量(计算机开辟一块空间) 数据类型 变量名;步骤2:为变量赋值(初 ...

  6. JavaSE基础知识(1)—初识Java

    一.JAVA的背景 JAVA本身隶属的公司的是sun公司(创始公司) JAVA创始人:詹姆斯 高斯林 09年被oracle收购 JAVA的前身是Oak 二.JAVA的版本 95年 JAVA诞生96年 ...

  7. javaSE基础知识

    JVM,JRE,JDK三者的简单总结 1.见名解释 Java虚拟机(JVM):Java virtual machine简称JVM:“virtual”中文意思“虚拟的”,“machine”中文意思“机器 ...

  8. JavaSE基础知识(7)—常用类

    一.包装类 1.理解 java为八大基本数据类型一一对应提供了引用类型,方便使用里面的属性和方法 2.包装类型 byte——>Byteshort——>Shortint——>Integ ...

  9. JavaSE基础知识(6)—异常和异常处理

    一.异常的理解及体系结构图 1.理解 异常:程序运行过程中发生的不正常现象.java中的错误: 语法错误 运行异常 逻辑错误 2.体系图 java程序在执行过程中所发生的异常分为两类: Error:J ...

  10. JavaSE基础知识(5)—面向对象(抽象类和接口)

    一.抽象类 1.理解 用abstract关键字定义的类,称为抽象类用abstract关键字定义的方法,称为抽象方法意义:当设计父类时,发现该父类根本不需要创建对象,并且里面有不好描述的方法.这个时候往 ...

随机推荐

  1. 项目配置 xml文件时 报错提示(The reference to entity "useSSL" must end with the ';' delimiter.)

    这次在配置xml文件时,出现错误提示( The reference to entity “useSSL” must end with the ‘;’ delimiter.) 报错行为 <prop ...

  2. MongoDB4和MysSQL5.7的读/写和事务处理速度简单对比

    系统环境: Ubuntu 18.04 数据库 MysSQL5.7/MongoDB4.0 插入的数据为随机生产,不重复. MySQL使用的连接库是 sqlalchemyMongoDB使用的连接库是pym ...

  3. elk5.0 版本遇到的安装问题

    问题1:max_map_count不够大 max virtual memory areas vm.max_map_count [65536] likely too low, increase to a ...

  4. form 组件如何扩展user的字段

    第一步 先将一个包引进来 第二步创建一个类加入你想要的字段

  5. HTML基础汇总

    一.HTML的概述(了解) a.html是什么 : hypertext markup language 超文本标记语言           超文本:音频,视频,图片称为超文本..           ...

  6. 十二:jinja2模板中使用url_for

    在页面中,有点击跳转到另一个地址的时候,可以使用url_for来指定要跳转的视图函数:{{ url_for('view_function') }} 如果该视图需要接收参数

  7. SAE Django如何禁止外部IP访问

    在SAE上基于Django搭建的Web工程有时需要禁止来自某些特定IP地址的访问请求. 例如一个为搭建在SAE的其他项目提供服务的内部工程,可以设置为只允许SAE内部的IP地址访问,从而提高项目的安全 ...

  8. Prometheus在Kubernetes下的服务发现机制

    Prometheus作为容器监控领域的事实标准,随着以Kubernetes为核心的云原生热潮的兴起,已经得到了广泛的应用部署.灵活的服务发现机制是Prometheus和Kubernetes两者得以连接 ...

  9. DJANGO MODEL FORMSETS IN DETAIL AND THEIR ADVANCED USAGE

    Similar to the regular formsets, Django also provides model formset that makes it easy to work with ...

  10. P2429 【制杖题】

    这题目名字也是够了... emmmmmm为什么要用线筛??????不感觉很麻烦吗??????既然是智障制杖题,那么肯定要用很简单的算法啦~下面,我就提供一种非常便于理解的膜你算法~~~很明显,做了这题 ...