首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
igoodful
小米_存储平台_数据库管理员
获赞
4
粉丝
2
关注
0
看过 TA
16
男
湖北大学
2019
golang
IP属地:湖北
程序员,偶尔画画、写书,颇具创意,大胆追求
私信
关注
拉黑
举报
举报
确定要拉黑igoodful吗?
发布(1061)
评论
刷题
igoodful
关注TA,不错过内容更新
关注
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>Object之notify</span>
订单
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>Object之wait</span>
一、源码。 1、公共本地,且可继承但不可重写。 2、公共,且可继承但不可重写。 3、公共,且可继承但不可重写。 二、解释。 1、因为这些方法是Object类中的非静态的public方法,而任何其他类都默认继承了Object类,因此所有类都继承了这些方法,也就是所有对象都有的方法,同时这些方法又是final修饰,因此所有类都不能重写这些方法。 三、应用
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>Object之equals与hashCode</span>
当地
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>Object之equals和hashCode</span>
译者注 :你可能会觉得Java很简单,Object的equals实现也会非常简单,但是事实并不是你想象的这样,耐心的读完本文,你会发现你对Java了解的是如此的少。如果这篇文章是一份Java程序员的入职笔试,那么不知道有多少人会掉落到这样的陷阱中。原文转自http://www.artima.com/lejava/articles/equality.html 三位作者都是不同领域的大拿,有兴趣的读者可以从上面这个连接直接去阅读原文。 摘要本文描述重载equals方法的技术,这种技术即使是具现类的子类增加了字段也能保证equal语义的正确性。在《Effective Java》的第8项中,Josh...
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>java内存模型</span>
一.内存模型的相关概念。 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就有了高速缓存。 也就是,当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运...
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>锁的内存语义与实现。</span>
短短的
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>final的内存语义与实现</span>
党的
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>volatile的语义与实现</span>
1.volatile关键字的两层语义 一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 2)禁止进行指令重排序。 先看一段代码,假如线程1先执行,线程2后执行: 1 2 3 ...
0
点赞
评论
收藏
分享
2021-10-12 13:42
已编辑
小米_存储平台_数据库管理员
<span>重排序</span>
一、重排序。 1、为什么需要重排序? 现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水线中,同时被执行。 指令流水线并不是串行的,并不会因为一个耗时很长的指令在“执行”阶段呆很长时间,而导致后续的指令都卡在“执行”之前的阶段上。我们编写的程序都要经过优化后(编译器和处理器会对我们的程序进行优化以提高运行效率)才会被运行,优化分为很多种,其中有一种优化叫做重排序,重排序需要遵守as-if-serial规则和happens-before规则,不能说你想怎么排就怎么排,如果那样岂不是...
0
点赞
评论
收藏
分享
2021-10-12 13:43
已编辑
小米_存储平台_数据库管理员
<span>线程启动和创建</span>
创建和启动线程 在java中创建一个线程如下: Thread thread = new Thread(); 调用方法start()来启动一个线程: thread.start(); 这个例子没有指定线程执行任何代码,线程将会在启动之后停止。 有两种方式指定线程应该执行什么代码。第一种方式就是创建一个Thread的子类并覆写run()方法。第二种方式就是创建一个实现Runnable接口的类。 Thread的子类 第一种方式指定线程执行什么样的代码,就是创建一个Thread的子类,并且覆写run(...
0
点赞
评论
收藏
分享
2021-10-12 13:43
已编辑
小米_存储平台_数据库管理员
<span>模式设计总结(三)</span>
方法
0
点赞
评论
收藏
分享
2021-10-12 13:43
已编辑
小米_存储平台_数据库管理员
<span>模式设计总结(二)</span>
更高更
0
点赞
评论
收藏
分享
2021-10-12 13:43
已编辑
小米_存储平台_数据库管理员
<span>模式设计总结(一)</span>
1、如何优雅地创建对象? 那么就可以考虑使用5种创建型模式。 (1)一个类在整个应用中,一个对象足矣,则单例模式。对象唯一。 (2)一个类在整个应用中,多个相同对象且相互不影响,则原型模式。对象复制。 (3)一个类在整个应用中,构建过程复杂且有序,则建造者模式。对象复杂。注重细节。 (4)一个类在整个应用中,对象大量简单,则工厂模式,若区分产品系列,则抽象工厂。对象简单大量。注重整体。 2、如何构建软件组件? 解决实体对象之间如何互相使用。那么就可以考虑7种结构型设计模式。 (1)当前系统需要使用现有的类,但此类又已经不符合当前的需要,急需改装一下让其符合要求,主要解决当前类的...
0
点赞
评论
收藏
分享
2021-10-12 13:43
已编辑
小米_存储平台_数据库管理员
<span>单元测试</span>
类与类之间的耦合度越低,一个单独的类就越容易进行测试。当类与类之间都是高度的耦合在一起的时候,单元测试就变得愈发的困难,而且得到的bug也越难划分和分离。在OOP的编程思想中,类是最基本的单元,每一个类也要保证一些基本的原则,其中,单一职责的原则就是一个类需要保证的,那么单元测试的任务就是来测试这些类是否如他们自己声明的一样,是可以独立于系统其他的部分而完成自己的职责。在单元测试中,让单元测试更加有效,测试执行更加迅速的一个通用的手段就是mock对象。我们在下面的例子中来演示它
0
点赞
评论
收藏
分享
2021-10-12 13:43
已编辑
小米_存储平台_数据库管理员
<span>解释器模式</span>
改革
0
点赞
评论
收藏
分享
1
46
47
48
49
50
71
关注他的用户也关注了:
牛客网
牛客企业服务