文档章节

Java知识回顾-基础知识(2)

 心田已荒
发布于 07/07 19:18
字数 1388
阅读 19
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

  1. 局部变量/成员变量:
  • 成员变量是属于类的

  • 局部变量是属于方法的

  • 都可以被final修饰

  1. java中使用new 创建实例对象

  2. 方法返回值的作用:

  • 方法的返回值 是指方法中的一系列操作有返回结果
  • 返回值的作用就是接受返回结果,以便使用返回值进行其他操作
  1. 静态方法/实例方法(普通方法)
  • 静态方法 可以使用 类名.方法名 来直接调用,也可以使用对象.方法名 调用
  • 实例方法,必须先创建对象,才能通过 对象.方法名 来进行调用

5.Java中的相等:

  • 对象相等: 比的是内存中存放的内容是否相等
  • 引用相等,比对的是他们所指向的对象的内存地址是否相等

6.== / equals

== 判断的是: 基本类型则判断数值是否相等,引用类型则判断所指向的内存地址是否相等

equals,判断对象是否相等:

  • 1,如果没有重写equals方法 ,则判断是 按照 == 的规则进行
  • 2,如果重写了equals方法 则按照equals方法对比对象内容是否相等

7.hashCode()方法/equals()方法

  • hashCode方法是Object的方法,所以每个对象都有

  • hashCode方法的作用是获得哈希码(随机的int整型),也叫散列码.

  • 哈希码的作用就是确定该对象在哈希表(也叫散列表,是以key-value的键值对形式来存储的表结构)中存储的位置,以便快速查找对象

  • hashCode的作用:

在HashSet(无序/不重复)中,如果将对象加入HashSet中,hashSet则会先计算对象的hashCode来判断对象的插入位置,同时也会与该位置其他的已经加入的对象的hashcode做对比,

如果没有相符的,HashSet会认为没有重复对象,可以直接插入.如果有相同的hashcode,则在调用equals方法来检查hashcode相等的对象是否真正的 相同,如果相同,则插入失败,如果不同,则会重新散列到其他位置

  • hashCode与equals的相关规定

如果两个对象相等,则hashcode一定相同

如果两个对象相等,则对两个对象分别调用equals方法返回结果都是true

如果两个对象的hashcode相等,两个对象不一定相等

所以,equals方法被重写,则hashCode方法也一定要重写

hashCode的默认行为是对堆上的对象产生独特值,如果没有重写hashcode方法,则该class的两个对象无论如何也不会相等(即使这两个对象指向相同的数据)

8.java中只有值传递,因为普通基本类型,传递的是数值,而引用数据类型,则传递的是指向对象的内存地址,该内存地址也是一个值,因此称之为只有值传递

9.线程/进程/程序

  • 线程是一个执行单位, 同类的多个线程共享同一块内存空间和一组系统资源,因此系统在产生一个线程,或者是在各个线程之间切换工作的时候,负担比进程小得多,因此线程也被称为轻量级进程

  • 程序是 含有指令和数据的文件,被存储在磁盘或是其他存储设备,程序是静态的代码

  • 进程是程序的一次执行过程,是系统运行程序的基本单位

  • 线程的基本状态

NEW 线程被构建,还没有调用start方法

RUNNABLE 调用start并获得cpu时间片称之为运行状态

BLOCKED 阻塞状态

WAITING 等待状态

TIME_WAITING 等待超时状态,不同WAITING ,可以在指定时间自行返回的

TERMINATED 终止状态,表示当前线程已执行完毕

线程创建(NEW)

调用start方法后开始运行,此时称之为READY可运行状态

当该线程获得cpu时间片开始真正运行称之为RUNNING运行状态

当调用wait方法 进入WAITING等待状态,此时的线程许需要其他现成的通知才能够返回运行状态,

而 TIME_WAITING等待超时状态,则在等待状态的基础上加上了超时限制,比如通过sleep(long millis)/wait(long millis)将线程至于TIME_WAITING状态,当到达超时时间后,线程会自己返回RUNNABLE状态.

当线程调用同步方法,没有获得锁的情况下,线程进入BLOCKING阻塞状态.

线程在执行RUNNABLE的run方法之后进入TERMINATED终止状态

10.final关键字 可以修饰变量/类/方法

  • final修饰变量,表示初始化之后,如果是基本数据类型,数值则不能发生改变,如果是引用数据类型,则指向的内存地址该数值不能被修改

  • final 修饰类 表示该类无法被继承,类中所有的成员方法都被隐式的指定为final方法

粉丝 0
博文 42
码字总数 26104
作品 0
许昌
私信 提问
加载中
请先登录后再评论。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
617
1
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.2K
1
研究虚拟机--Jikes RVM

Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序的虚拟机,其早期版本与当前版本分别在通用公共许可证(CPL)与Eclipse公共许可证(EPL)下开...

匿名
2013/02/13
1.1K
0
Swing界面分析和调试工具--Swing Inspector

Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似,具有强大的Swing/AWT用户界面分析和调试相关功能。 适用于从java swing初级到高级的所有开发人员,能够快速...

匿名
2013/03/06
3.3K
0
视图各种动画效果

自定义视图变换的各种动画效果。其中包括:CALayer、UIViewAnimation、CATransition、CABasicAnimation、CAKeyframeAnimation、CAAnimationGroup、CATransform3D各个知识点实现的动画效果,实...

匿名
2013/03/21
1.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringMVC 静态资源CSS,JS访问不了 解决方法

SpringMVC 静态资源CSS,JS访问不了 解决方法 参考文章: (1)SpringMVC 静态资源CSS,JS访问不了 解决方法 (2)https://www.cnblogs.com/peiyangjun/p/8194687.html 备忘一下。...

osc_tylqml9v
19分钟前
30
0
如何快速处理线上故障

点击上方☝ Java编程技术乐园,轻松关注! 及时获取有趣有料的技术文章 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 来源:https://dwz.cn/5AabFxT8 线上故障...

阿飞云
2019/07/12
12
0
老大批评我不要为了“分库分表”而“分库分表”

来自:rrd.me/gEJnq 当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。 数据库瓶颈 不管是 IO 瓶颈还是 CPU 瓶颈,...

倪升武
05/05
16
0
网络基础汇总

网络基础 进阶 · 那些你必须搞懂的网络基础 为什么这么设计系列 为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,作者在这个系列的每一篇文章中都会提出一...

osc_uvparld2
20分钟前
0
0
巨额解禁后股东扎堆套现离场,三只松鼠还能“乘风破浪”吗?

巨额解禁后股东扎堆套现离场,三只松鼠还能“乘风破浪”吗? 2019年7月12日三只松鼠(SZ300783)在深交所创业板上市,被媒体称为“国民零食第一股”。 一年后的2020年7月13日三只松鼠1.86亿股...

osc_caajiue7
22分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部