农历(腊月初十)
关于
友情链接
Toggle navigation
Harries Blog™
追心中的海,逐世界的梦
首页
编程技术
Java
软件架构
移动开发
后端
前端
大数据
数据库
算法
人工智能
测试
代码管理
IT教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
Redis教程
Spring教程
Git教程
Jenkins进阶系列
openfire参考指南
springcloud-demo
Java设计模式
HBase教程
java-demo
Maven教程
hibernate教程
Docker 教程
memcached教程
Quartz指南
Hive教程
ANTLR教程
SpringCloud
Ant教程
java实例教程
Hazelcast教程
XStream教程
Elastic-Job-Lite
深入浅出MyBatis
ibaties教程
SVN教程
rabittmq教程
Hadoop教程
solr教程
WebService CXF学习
JPA教程
ActiveMQ中文指南
Java内存模型
dubbo教程
python3-demo
Linux入门视频教程
生活感悟
默认分类
博主自留地
一周一本书
一月一个人
互联网
互联网.出海
互联网.IPO
运维
Linux
docker
nginx
windows
操作系统
监控软件
vmware
虚拟化
tomcat
自动化
留言板
转载
发表于 2019年08月23日
浏览 (
597
)
评论 (0)
java核心卷Ⅰ第十版笔记4
第四章
不要编写返回引用可变对象的访问器方法。因为会破坏封装性。如果需要返回一个可变对象的引用, 应该首先对它进行克隆(clone )。对象 clone 是指存放在另一个位置上的对象副本。
final 修饰符大都应用于基本类型域,或不可变类的域(如果类中的每个方法都不会改变其对象,这种类就是不可变的类。例如,String类就是一个不可变的类)。对于可变的类,使用 final修饰符可能会对读者造成混乱。例如:
private final StringBuiIder evaluations;
在构造器中会初始化为
evaluations = new StringBuilder();
final 关键字只是表示存储在 evaluations 变量中的对象引用不会再指示其他StringBuilder对象。不过这个对象可以更改:`public void giveGoldStarO{evaluations.append(LocalDate.now() + ": Gold star!n"); }
System 类有一个 setOut 方法, 它可以将 System.out 设置为不同的流。为什么这个方法可以修改 final 变量的值。原因在于,setOut 方法是一个native方法,是用C/C++语言实现的,并且被编译成了DLL,由java去调用 而不是用 Java 语言实现的。实际上java就是在不同的平台上调用不同的native方法实现对操作系统的访问的。native的意思就是通知操作系统, 这个函数你必须给我实现,因为我要使用。 所以native关键字的函数都是操作系统实现的, java只能调用。这是一种特殊的方法, 在自己编写程序时, 不应该这样处理。
在下面两种情况下使用静态方法:一:方法不需要访问对象状态,其所需参数都是通过显式参数提供(Math.pow) 二:一个方法只需要访问类的静态域(例如:Employee.getNextldh
Java 程序设计语言对对象采用的不是引用调用,实际上,对象引用是按值传递的。总结一下Java中方法参数的使用情况:一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。一个方法可以改变一个对象参数的状态。 一个方法不能让对象参数引用一个新的对象。
可以为任何一个类添加 finalize 方法。finalize 方法将在垃圾回收器清除对象之前调用。在实际应用中,不要依赖于使用 finalize 方法回收任何短缺的资源, 这是因为很难知道这个方法什么时候才能够调用。
类设计技巧:1. 一定要保证数据私有 2. 一定要对数据初始化 3. 不要在类中使用过多的基本类型 4. 不是所有的域都需要独立的域访问器和域更改器 5.将职责过多的类进行分解 6. 类名和方法名要能够体现它们的职责 7.优先使用不可变的类,如果多个线程试图同时更新一个对象,就会发生并发更改。其结果是不可预料的。如果类是不可变的,就可以安全地在多个线程间共享其对象。
由三张图可知,加载顺序为父类静态变量-静态代码块-子类静态变量-静态代码块-父类代码块-父类构造方法-子类代码块-子类构造方法。
原文
https://segmentfault.com/a/1190000020163132
正文到此结束
赞
0
赏
分享
本文标签:
线程
操作系统
id
tar
参数
垃圾回收
App
IO
https
代码
http
编译
IDE
src
并发
java
数据
build
构造方法
UI
总结
静态方法
安全
final
Lua
版权声明:
本文为互联网转载文章,出处已在文章中说明(部分除外)。如果侵权,请
联系本站长
删除,谢谢。
本文海报:
生成海报一
生成海报二
上一篇
推荐一款 MyBatis 开发神器,为简化而生!
下一篇
快速入门 Java 后端开发的正确姿势
热门推荐
openfire数据库安装指南
浏览(14,145)
评论(0)
Caffe 深度学习框架上手教程
浏览(10,786)
评论(0)
ReactiveCocoa入门教程:第一部分
浏览(11,605)
评论(0)
开源HIDS-OSSEC使用实例:监测CC攻击
浏览(11,512)
评论(0)
Decorators in ES7
浏览(16,068)
评论(4)
用Electron(Atom编辑器的兄弟项目)开发桌面应用
浏览(29,075)
评论(0)
Windows下JetBrains CLion中文输出乱码的解决方法
浏览(12,529)
评论(1)
同步-@synchronized, NSLock, pthread, OSSpinLock性能比较
浏览(11,469)
评论(0)
Seaweedfs之Volume读请求重定向
浏览(25,763)
评论(3)
HTML、CSS及JavaScript : 有Promise,不会搞大肚子
浏览(13,603)
评论(0)
相关文章
【UNITY3D 游戏开发之八】Unity编译到iPhone运行 Collider 无法正常触发事件解决方案
想要打造Material Design风格的网站?试试这种Web框架吧
Camera360被爆存在漏洞:数据存在泄露风险导致未经授权可访问他人照片
统计学发展方向的选择
小测某Q友其应用人员不小心把RAC表空间tablespace数据文件datafile建在本地文件系统
[iOS] PatronKit:应用内购及赞助管理框架库
Nexus3.x搭建Maven私服环境
Dubbo的集群容错模式
17日JDK 14 正式发布了,有些特性值得关注
用几张图,带你了解 eureka-client
说给你听
本文目录
随机标签
list
DNS
xmpp.openfire
服务注册
取得成绩
未富先老
zab
开发
继承策略
lambda
Activation
黄金时代
Log4j
lifesinger
推广
参数
红包
OAuth 2.0
个人养老金
适应式
做自己
万圣节
Spring bean
英国脱欧
线程同步
管理
20本商业书籍
模糊查询
CompletableFuture
补贴
城堡
教程
Master
公共面积私自租给商户
暴利后端
医疗器械
SharePoint
创业
expat
CDN
orElseThrow
创业
V神
HandlerMapping
Freemarker
Google Authenticator
SharePoint
rabbitmq
在线生成
思想狭隘
Oracle
书籍教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
Redis教程
Spring教程
Git教程
Jenkins进阶系列
openfire参考指南
springcloud-demo
Java设计模式
HBase教程
java-demo
Maven教程
hibernate教程
Docker 教程
memcached教程
Quartz指南
Hive教程
ANTLR教程
SpringCloud
Ant教程
java实例教程
Hazelcast教程
XStream教程
Elastic-Job-Lite
深入浅出MyBatis
ibaties教程
SVN教程
rabittmq教程
Hadoop教程
solr教程
WebService CXF学习
JPA教程
ActiveMQ中文指南
Java内存模型
dubbo教程
python3-demo
Linux入门视频教程
近期评论
666
666
admin
文章和留言都翻到11页了 没有OOM
admin
我试一下
匿名
朋友,翻页到11页,及以后,会出现OOM,无法访问
可以
搞个gitee的项目
匿名
666
admin
版本号是多少,你可以下载哪个代码仓库,jdk选1.8 直接跑就行
极客青年
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demo.et.mysql.MysqlTests': Unsatisfied dependency expressed through field 'userMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'demo.et.mysql.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:393) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:119) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:43) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'demo.et.mysql.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1695) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1253) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ... 30 more
极客青年
原封不动的代码报错如下:
随机文章
站长推荐
近期文章
1
微软与Docker发布Windows Server容器预览版
2
用户可以自定义Amazon Redshift数据库函数了
3
【每日一博】PostgreSQL的 Slony-I 数据同步实践
4
[下载]iTunes升至12.3版本:支持iOS 9和OS X 10.11
5
Trello 的 5 个开源替代品
6
Kubernetes性能测试和发展计划
7
Android Studio导入github下载的工程
8
After 500: 写了第500篇博客,然后呢?
9
计算机器内存数量+引入和显示ARDS成员
10
数据结构之Heap (Java)
1
VPS 自我监控
2
springboot接入多个ES启动时候自检报错
3
配置虚拟站点
4
openfire协议支持指南
5
修改上传文件权限
6
OpenVZ VPS 额外支持
7
2015年北京下第一场雪留念
8
openfire定制指南
9
mysql存储过程实例一:游标的使用
10
Linux删除或者新增SWAP分区
1
Spring Cloud 集成AlloyDB
2
git如何统计某人提交的所有代码文件名称呢?
3
2024我都干了些啥?
4
使用fitten code作为代码编辑提示器
5
使用sonarqube分析VUE代码质量
6
Spring Cloud Security集成JWT 快速入门Demo
7
mysql三种读取模式(普通、流式、游标)
8
Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
9
Spring Cloud OpenFeign快速入门demo
10
使用 Docker 打包和运行 Vue 应用
网站信息
文章总数:82,747 篇
文件总数:284,327 个
标签总数:2,424 个
分类总数:85 个
留言数量:2,559 条
在线人数:614 人
运行天数:4,456天
最后更新:2025年01月08日23点
×
输入密码查看文章详情
×
搜索文章
搜索
热门搜索:
Java
Springboot
Linux
Maven
Bootstrap
阿里云
×
评论信息框
可以通过QQ号实时获取昵称和头像
QQ
昵称
邮箱
网址
提交评论
×
山无棱江水为竭,冬雷震震夏雨雪,才敢请君舍
支付宝
微信
转账时请备注“
博客赞助
”
Loading...