Java基础知识复习(一)

  • 目录
    • Java简介
    • 命名规则
    • 八种基本的数据类型
    • 字面量
    • 类型转换
    • 变量的形态
    • 逻辑运算符
    • 位运算
    • 移位运算
    • 习题知识点

目录

Java简介

Java是由Sun公司在1995年推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:

  1. JavaSE
  2. JavaEE
  3. JavaME

命名规则

java中的类名,变量名,方法名都被称为标识符。

  1. 标识符命名规则:
    ①由字母,数字,下划线,$组成,不能以数字开头。
    ②也可以使用中文来进行命名,但是原则上建议使用英文来 命名。
    ③大小写敏感,java中的关键字不能用作标识符。
    ④在满足以上命名规范的前提下,如果能做到见名知意就更好了。

  2. 类名:类名一般为名词,类名的首字母大写,如果由多个单词组成,则每个单词的首字母大写。如:Product,GuessNumber.

  3. 方法名:方法名一般为动词,类名的首字母小写,如果由多个单词组成,则第一个单词的首字母小学,其后每个单词的首字母均大写。如:addDemo.

  4. 变量名:参考标识符命名规则。

八种基本的数据类型

数值型:byte/int/short/long
浮点型:float/double
字符类型(也是一种数值类型):char
布尔类型:boolean
各类型在内存中存储的大写(所占字节数):

类型 所占字节数
byte 1
int 4
short 2
long 8
float 4
double 8
char 2
boolean 没有规定

字面量

在这里引入一个字面量的知识点:
比如:double a = 10;a是double类型的,但是10这个字面量的类型其实是int类型的,这里这么定义也是可以的,因为double类型所能表示的范围要比int类型大,所以int类型的数值转换为double类型一定不会损失精度,这里会发生自动转换类型操作。
字面量(以下数字均为举例子):
10----int
10L----long
10.0----double
10.0F----float
‘A’----char
true/false----boolean
类型提升
long+double —> double
byte/short/char = int 类型的字面量时,有特殊处理,只要在可接收的范围内就可以。
byte/short/int/long类型溢出后,会有一个回转操作。
如下:

 byte a =(byte) 129;System.out.println(a);(输出结果为-127)

类型转换

发生在变量赋值的时候

a=?;

a的类型和?的类型不同时发生

a表示的范围比较大自然转换

a表示的范围比较小,转化的过程中可能发生精度丢失,需要强制类型转换

变量的形态

  1. 局部变量
  2. 类变量(静态变量/静态属性)
  3. 成员变量(非静态变量/属性)

逻辑运算符

&&(与),||(或),!(非)
注意:逻辑运算符的操作数和返回值都是boolean。
与或非的规则相信大家都很清楚了,这里不作过多的阐述。
&&和||遵循短路求值的规则:
短路求值的规则在&&中是:如果第一个条件表达式的返回值就是false,那么就不用看第二个条件表达式了,该表达式的返回值就是false。
在||中是:如果第一个条件表达式的返回值就是true,那么就不用看第二个条件表达式了,该表达式的返回值就是true。
&,|:如果操作数为为整数(int ,short,long,byte)的时候表示按位运算,当操作数为boolean的时候表示逻辑运算,但是不支持短路规则。

(p&&q)||r=(p||r)&&(q||r)

(p||q)&&r=(p&&r)||(q&&r)

!(p||q)=!p&&!q

位运算

  • 方法

    对整数进行操作

  • 用途

    优化程序

    &运算通常用于二进制的取位操作,例如一个数 & 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。

    相同位的两个数字都为1,则为1;若有一个不为1,则为0。

    | 运算通常用于二进制特定位上的无条件赋值,例如一个数| 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数 |1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

    相同位只要一个为1即为1。

    异或的符号是^。按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0.

    异或运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a ^b) ^ b = a。 ^ 运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520 ^ 19880516 = 20665500,我就把20665500告诉MM。MM再次计算20665500 ^ 19880516的值,得到1314520。

    相同位不同则为1,相同则为0。

    ~ 运算的定义是把内存中的0和1全部取反。使用~ 运算时要格外小心,你需要注意整数类型有没有符号。如果~的对象是无符号整数(不能表示负数),那么得到的值就是它与该类型上界的差.

移位运算

<< ,>> , >>>(无符号右移)
带符号左移<<:最左侧位不要了,最右侧补0;
带符号右移>>:最右侧位不要了,最左侧补符号位(整数补0,负数补1)
无符号右移>>>:最右侧位不要了,最左侧补0.

注意:
java中的%操作也能针对double进行计算

习题知识点

  1. final的作用
    修饰变量,变量的引用地址不可变,但是地址中的内容可以变。
    修饰方法,方法不可被重写,但是可以重载。
    修饰类,类不可继承。
  2. 常见的异常分为两种:一种是编译时异常,一般是由于语法错误导致的;还有一种是运行时异常。
    编译时异常必须显示处理,运行时异常交给虚拟机。
    运行时异常可以不处理。当出现这样的异常时,总是由虚拟机接管。比如我们从来没有人去处理过Null Pointer Exception异常,它就是运行时异常,并且这种异常还是最常见的异常之一。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往不对它处理罢了。也就是说,如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
  3. Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).
    正确答案: C 你的答案: D (错误)
    A11 ,-11
    B11 ,-12
    C12 ,-11
    D12 ,-12
    Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;round方法表示“四舍五入”,r就是取最接近整数,如果遇到一样近,则取较大值。
  4. 面向对象的基本规则:
    五个基本原则:
    单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
    开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。
    Liskov替换原则(里氏原则)(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
    依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
    接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口

Java基础知识复习(一)相关推荐

  1. java基础知识复习(上半)

    java基础知识复习 java为什么被发明? Green项目的确立,应用于像电视盒一样的消费类电子产品,语言本身本身中立. java的三大版本? javaSE的定位在于客户端,只要用于桌面应用软件的编 ...

  2. Java基础知识复习(二)

    对最近java基础知识理解不足的方面进行了巩固,写个博客记录一下!

  3. Java基础知识复习01:从基础知识---面向对象(后续会更新)

    在我的资源里有:pdf对应的完整内容需要的可以自行下载,无偿分享给大家 一.快捷键 Alt + / : 1)在java类中,要输出main方法,只要输入main然后用此快捷键按回车即可: 2)要输出S ...

  4. java基础知识复习

    1.java语言是强类型还是弱类型语言?为什么? Java 是强类语言,在使用变量时有如下规则: ü      变量必须声明,并且初始化以后才能使用. ü      变量必须有明确的类型(type). ...

  5. java基础知识复习(截取)

    package com.zking.dtd.test; import java.util.Scanner; /** 裴波那契数列 @author zjjt / public class Demo { ...

  6. FOW的JAVA基础知识复习

    易错点 1. 标识符可以由字母.数字.下划线(_).美元符($) 组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头.譬如:123name 就是不合法滴 (同时JAVA的标识符也是区分大小写 ...

  7. Java基础知识复习一

    目录 2.1   Java的基本语法 Java中的注释 Java中的标识符 Java中的关键字 Java中的常量 2.2  Java中的变量 变量的定义 变量的数据类型 变量的类型转换 变量的作用域 ...

  8. 第一篇Java基础知识 复习博客

    目录 学习笔记(p14) java的基本格式 学习笔记(p15)  java中的注释 学习笔记(p16)  Java中的标识符 学习笔记(p17)  java中的关键字 学习笔记(p18)  Java ...

  9. 第一篇Java基础知识复习

    全章节学习目标: 1.掌握Java基本语法.常量.变量.流程控制语句.方法以及数组 2.了解Java代码的基本格式 3.熟悉Java运算符的使用 Java代码的基本格式 学习笔记(p14): 编写Ja ...

最新文章

  1. android+布局分块,android的List View的Item布局问题
  2. 走近分形与混沌(part7)--三体与混沌
  3. C#中的扩展方法,Linq,IO和多线程的定义和实例
  4. 吐槽贴:用ELECTRA、ALBERT之前,你真的了解它们吗?
  5. 如果彩虹QQ算非法外挂,那么运行在windows上的非微软开发的程序算什么?
  6. 如何在页面显示json数据
  7. iOS KVO实现方式
  8. 站长常用的15个建站助手网站工具软件
  9. 蒟蒻C语言入门篇(一)
  10. GitHub · 如何创建文件夹
  11. Hi 小姐姐,这是你要的瘦身大长腿效果?
  12. 集群中包括4个节点:2个Master(主备),2个Salve,节点之间局域网连接,可以相互ping通
  13. 文献检索(学术搜索)
  14. isomorphic-style-loader在前后端渲染样式同构中的应用与源码分析
  15. 向日葵远控无法启动——[rpcclient]rpcclient_default::connect is error
  16. 操作系统ucore lab1实验报告
  17. java怎样生成文档_关于如何生成Java文档
  18. 出自ios深入浅出专栏(内购)
  19. 「MOSS - 16」MOSS队:Scrum Meeting 7
  20. 可以下载PCB封装的网站

热门文章

  1. GIT项目管理工具(part6)--放弃工作区文件修改及从仓库区恢复文件
  2. GIT项目管理工具(part2)--初始配置
  3. python人人贷爬虫_爬取人人贷网上部分借贷信息以及数据可视化
  4. 77 行代码实现 ABAP ALV 中的双击事件处理
  5. TypeScript 编译生成的 JavaScript 源代码里的 ɵcmp 属性
  6. 什么是 CMS - Content Management System
  7. TypeScript 的类型推导 Type Inference
  8. Angular里的style property binding的一个例子
  9. SAP Spartacus B2B页面Budget页面的设计原理
  10. 使用Angular HTTP client对数据模型进行创建操作