Java基础承啊

2、访问修饰符public,private,protected,以及不写(默认)时的区别?答:

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以是以上四种。

80、事务的ACID是指什么?答:-原子性(Atomic):事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败;-一致性(Consistent):事务结束后系统状态是一致的;-隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态;-持久性(Durable):事务完成后所做的改动都会被持久化,即使发生灾难性的失败。通过日志和同步备份可以在故障发生后重建数据。

补充:关于事务,在面试中被问到的概率是很高的,可以问的问题也是很多的。首先需要知道的是,只有存在并发数据访问时才需要事务。当多个事务访问同一数据时,可能会存在5类问题,包括3类数据读取问题(脏读、不可重复读和幻读)和2类数据更新问题(第1类丢失更新和第2类丢失更新)。

脏读(DirtyRead):A事务读取B事务尚未提交的数据并在此基础上操作,而B事务执行回滚,那么A读取到的数据就是脏数据。

不可重复读(UnrepeatableRead):事务A重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务B修改过了。

幻读(PhantomRead):事务A重新执行一个查询,返回一系列符合查询条件的行,发现其中插入了被事务B提交的行。

第1类丢失更新:事务A撤销时,把已经提交的事务B的更新数据覆盖了。

第2类丢失更新:事务A覆盖事务B已经提交的数据,造成事务B所做的操作丢失。

数据并发访问所产生的问题,在有些场景下可能是允许的,但是有些场景下可能就是致命的,数据库通常会通过锁机制来解决数据并发访问问题,按锁定对象不同可以分为表级锁和行级锁;按并发事务锁定关系可以分为共享锁和独占锁,具体的内容大家可以自行查阅资料进行了解。直接使用锁是非常麻烦的,为此数据库为用户提供了自动锁机制,只要用户指定会话的事务隔离级别,数据库就会通过分析SQL语句然后为事务访问的资源加上合适的锁,此外,数据库还会维护这些锁通过各种手段提高系统的性能,这些对用户来说都是透明的(就是说你不用理解,事实上我确实也不知道)。ANSI/ISOSQL92标准定义了4个等级的事务隔离级别,如下表所示:

需要说明的是,事务隔离级别和数据访问的并发性是对立的,事务隔离级别越高并发性就越差。所以要根据具体的应用来确定合适的事务隔离级别,这个地方没有万能的原则。

113、JavaWeb开发的Model1和Model2分别指的是什么?答:Model1是以页面为中心的JavaWeb开发,使用JSP+JavaBean技术将页面显示逻辑和业务逻辑处理分开,JSP实现页面显示,JavaBean对象用来保存数据和实现业务逻辑。Model2是基于MVC(模型-视图-控制器,Model-View-Controller)架构模式的开发模型,实现了模型和视图的彻底分离,利于团队开发和代码复用,如下图所示。

135、阐述实体对象的三种状态以及转换关系。答:最新的Hibernate文档中为Hibernate对象定义了四种状态(原来是三种状态,面试的时候基本上问的也是三种状态),分别是:瞬时态(new,ortransient)、持久态(managed,orpersistent)、游状态(detached)和移除态(removed,以前Hibernate文档中定义的三种状态中没有移除态),如下图所示,就以前的Hibernate文档中移除态被视为是瞬时态。

事务分为全局事务和局部事务。全局事务由应用服务器管理,需要底层服务器JTA支持(如WebLogic、WildFly等)。局部事务和底层采用的持久化方案有关,例如使用JDBC进行持久化时,需要使用Connetion对象来操作事务;而采用Hibernate进行持久化时,需要使用Session对象来操作事务。

Spring提供了如下所示的事务管理器。

169.什么是领域模型(domainmodel)?贫血模型(anaemicdomainmodel)和充血模型(richdomainmodel)有什么区别?答:领域模型是领域内的概念类或现实世界中对象的可视化表示,又称为概念模型或分析对象模型,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。贫血模型是指使用的领域对象中只有setter和getter方法(POJO),所有的业务逻辑都不包含在领域对象中而是放在业务逻辑层。有人将我们这里说的贫血模型进一步划分成失血模型(领域对象完全没有业务逻辑)和贫血模型(领域对象有少量的业务逻辑),我们这里就不对此加以区分了。充血模型将大多数业务逻辑和持久化放在领域对象中,业务逻辑(业务门面)只是完成对业务逻辑的封装、事务和权限等的处理。下面两张图分别展示了贫血模型和充血模型的分层架构。

170.谈一谈测试驱动开发(TDD)的好处以及你的理解。答:TDD是指在编写真正的功能实现代码之前先写测试代码,然后根据需要重构实现代码。在JUnit的作者KentBeck的大作《测试驱动开发:实战与模式解析》(Test-DrivenDevelopment:byExample)一书中有这么一段内容:“消除恐惧和不确定性是编写测试驱动代码的重要原因”。因为编写代码时的恐惧会让你小心试探,让你回避沟通,让你羞于得到反馈,让你变得焦躁不安,而TDD是消除恐惧、让Java开发者更加自信更加乐于沟通的重要手段。TDD会带来的好处可能不会马上呈现,但是你在某个时候一定会发现,这些好处包括:-更清晰的代码—只写需要的代码-更好的设计-更出色的灵活性—鼓励程序员面向接口编程-更快速的反馈—不会到系统上线时才知道bug的存在

补充:敏捷软件开发的概念已经有很多年了,而且也部分的改变了软件开发这个行业,TDD也是敏捷开发所倡导的。

TDD可以在多个层级上应用,包括单元测试(测试一个类中的代码)、集成测试(测试类之间的交互)、系统测试(测试运行的系统)和系统集成测试(测试运行的系统包括使用的第三方组件)。TDD的实施步骤是:红(失败测试)-绿(通过测试)-重构。在使用TDD开发时,经常会遇到需要被测对象需要依赖其他子系统的情况,但是你希望将测试代码跟依赖项隔离,以保证测试代码仅仅针对当前被测对象或方法展开,这时候你需要的是测试替身。测试替身可以分为四类:-虚设替身:只传递但是不会使用到的对象,一般用于填充方法的参数列表-存根替身:总是返回相同的预设响应,其中可能包括一些虚设状态-伪装替身:可以取代真实版本的可用版本(比真实版本还是会差很多)-模拟替身:可以表示一系列期望值的对象,并且可以提供预设响应Java世界中实现模拟替身的第三方工具非常多,包括EasyMock、Mockito、jMock等。

THE END
1.一文搞懂万能险(万能账户)换句话说,增额寿关联的万能账户,不存在转入手续费问题,只存在趸交/追加手续的问题。 提取:账户前5年提取手续费,即自万能账户开户后的前5年提取万能账户余额,会收取一定手续费,比如常见的是5%、4%、3%、2%、1%和0%,开户第6年及以后不再收取提取手续费。 https://www.meipian.cn/591cew30
2.万能账户是个什么鬼?这个年代,各种账户到处都是,除了我们常用的储蓄卡、存折、信用卡,还有银行的各类宝宝账户、余额宝账户、证券账户、区块链钱包等等,保险公司还有一种叫做万能的账户被屡屡提起。我们不禁想问:这些账户安全吗?收益怎么样?万能账户到底是个什么账户?它有什么功能?它真的是万能的吗? https://www.jianshu.com/p/e6114a5c3379
3.火遍全网的长城金麒麟万能账户,内行为何劝你谨慎入手?类似余额宝,相同点,都是可以放钱并增值的灵活账户。 与余额宝的不同点 ▼1、万能账户有保底利率、现行利率 保底利率就是不管保险公司投资收益怎么样,必须给你兜底的;现行利率≥保底利率,行情好时会更高。 ▼2、万能账户有费用、个别领取限制 常规前5年,进出有费用;寿险型万能账户还会限制每年取钱不超过20%账户价https://www.yoojia.com/ask/17-11641303381663383212.html
4.固定资产原值为5000元,残值为500元,使用年限为5年,折旧方法为双倍固定资产原值为5000元,残值为500元,使用年限为5年,折旧方法为双倍余额递减法,则用VDB函数计算第二年的折旧值正确的是( )。A.VDB(5000,500,5,0,2)B.VDB(5000,500,5,1,2)C.VDB(5000,500,5,2)D.VDB(5000,500,5,0,1)的答案是什么.用刷刷题APP,拍照搜索答疑.刷刷题(shuashttps://www.shuashuati.com/ti/49f8ad3b5e554647a706e0ef8a03c09f.html?fm=bd0916fcb1782f345e5e8c46edd693ae74
5.退保万能账户,钱还能取出来吗?可以取出多少钱?保险万能账户中的资金通常可以部分领取,但如果退保了万能账户,那么其中的钱还能取出来吗?答案是肯定的。退保后,保险公司一般会将退保单现金价值与万能账户价值(犹豫期内已交保费)一并返还给投保人。因此,只要万能账户中还有余额,退保时其中的资金也会一同退还给投保人。 https://m.xyz.cn/discover/detail-tuibao-3281683.html
6.你的余额宝跌破2%,他的却连续27个月6%▼ 为什么华夏人寿的万能账户如此给力?华夏人寿实力不容小觑,成立2006年,总资产5445亿元。2019年公司累计总保费1890亿元,市场排名第三。2019年,华夏保险入围世界500强,位列第442位。 ◢4◣ 如何获得金管家(钻石版)? 需搭配主险,便能免费获得金管家(钻石版)这个万能账户。 根据主险总保费,可追加进万能账户的总保费,https://www.douban.com/doubanapp/dispatch?uri=%2Fnote%2F787488435
7.年金险的万能账户余额怎么取出来?多久首席张老师2、年金险如果带有万能账户,年金险返还金会进入到万能账户里,在万能账户里的钱是随时可以领取的,但是万能账户的领取是有一定限制的,领取后账户价值余额不能低于保险公司规定的金额,且万能账户在前五年部分领取是会扣除一定的手续费。如有需要可以添加我的微信,我会用最专业的的知识帮您选对保险,不踩坑! https://licai.cofool.com/ask/vipqa_1645024_17032078.html
8.区块链技术目前七块连接的技术正确理什么阶看完你就能知道为什么比特币价格能从年内最低4876暴涨到最高20500元,半年涨幅逾400%…… 首先,我们了解下市场中的“信任”。 就像人们很容易忽略看不见却倏忽不可或缺的氧气一样,人们也经常会忽略市场经济中一样至关重要的东西,这就是“信任”。 https://blog.csdn.net/heqinghua217/article/details/79026483
9.保险万能账户的钱怎么取出来吗终身寿险万能账户钱怎么取出来的 终身寿险万能账户的钱可以通过以下方式取出:1.部分领取:万能账户中的钱可以部分领取,每次领取的金额和领取后的账户余额应符合保险公司的规定。2.退保:如果需要取出全部账户余额,可以选择退保。退保后,万能账户中的所有余额将被取出,同时保险合同终止。3.贷款:部分终身寿险万能账户中的https://m.shenlanbao.com/wenda/topics/142290