农历(五月十四)
关于
友情链接
Toggle navigation
Harries Blog™
追心中的海,逐世界的梦
首页
编程技术
Java
软件架构
移动开发
后端
前端
大数据
数据库
算法
人工智能
测试
代码管理
IT教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
Redis教程
springcloud-demo
Spring教程
Git教程
Jenkins进阶系列
openfire参考指南
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日
浏览 (
719
)
评论 (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
赏
分享
本文标签:
UI
总结
静态方法
安全
final
Lua
线程
操作系统
id
tar
参数
垃圾回收
App
IO
https
代码
http
编译
IDE
src
并发
java
数据
build
构造方法
版权声明:
本文为互联网转载文章,出处已在文章中说明(部分除外)。如果侵权,请
联系本站长
删除,谢谢。
本文海报:
生成海报一
生成海报二
上一篇
推荐一款 MyBatis 开发神器,为简化而生!
下一篇
快速入门 Java 后端开发的正确姿势
热门推荐
openfire数据库安装指南
浏览(15,318)
评论(0)
Caffe 深度学习框架上手教程
浏览(11,500)
评论(0)
ReactiveCocoa入门教程:第一部分
浏览(12,300)
评论(0)
开源HIDS-OSSEC使用实例:监测CC攻击
浏览(12,196)
评论(0)
Decorators in ES7
浏览(16,848)
评论(4)
用Electron(Atom编辑器的兄弟项目)开发桌面应用
浏览(29,781)
评论(0)
Windows下JetBrains CLion中文输出乱码的解决方法
浏览(13,240)
评论(1)
同步-@synchronized, NSLock, pthread, OSSpinLock性能比较
浏览(12,138)
评论(0)
【开班了】JAVA培训班正式招生
浏览(8,316)
评论(12)
Seaweedfs之Volume读请求重定向
浏览(26,472)
评论(3)
相关文章
使用 Bluemix、Docker 和 Watson 为 Minecraft 创建认知插件,第 1 部分: 在 Docker 内运行 Minecraft 服务器
博客 | 读懂 JPA, Hibernate, Spring data jpa 之间的关系
看完这个,Java IO从此不在难
Spring使用之IOC
程序员的职场进化论:物竞天择,适者生存
Apollo源码分析(一):Apollo简介 & 架构演进
零基础如何自学编程?
夯实Java基础系列9:深入理解Class类和Object类
jvm 7种垃圾收集器
【项目升级】集成Quartz.Net Job实现(一)
说给你听
本文目录
随机标签
SHEIN
内容创造者
HTTP协议
Rack awareness
cache
BigQuery
报表管理
参数处理
expat
db2
JPQL
喝酒暖身
JPA实体关系
Google Authenticator
财富蒸发
进程数
aws
Lua
restHighLevelClient
可测性
@PreDestroy
@PathVariable
Prompt
极客爱情
Aviator
2024总结
Job 'Instances'
Predicate
DAG
Persistence
酒类
brokerName
acquire
Elasticsearch
v-show
Slave1
物业态度嚣张
Aviator
家庭
Java表达式引擎
多个字段
TextRank
collection1
社会心态
cmd
jstack
营销方案
StdSchedulerFactory
金融
提问
独立创造者
书籍教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
Redis教程
springcloud-demo
Spring教程
Git教程
Jenkins进阶系列
openfire参考指南
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入门视频教程
近期评论
admin
已加上
admin
大佬,你网站有一段时间打不开,我还以为你不做了呢
灰常记忆
??? 我的链接居然被你干掉了?
oliver
666 666
666
666
admin
文章和留言都翻到11页了 没有OOM
admin
我试一下
匿名
朋友,翻页到11页,及以后,会出现OOM,无法访问
可以
搞个gitee的项目
随机文章
站长推荐
近期文章
1
Material适配1 - 入门篇
2
超赞!8个jQuery焦点图动画赏析
3
每个程序员1小时内必须解决的5个编程问题
4
跨平台网络通信与服务器框架 acl-3.1.2 版本发布
5
25个 Git 进阶技巧
6
Kibana 中文指南
7
Java初认识--Java中的语法结构
8
【原创】.NET读写Excel工具Spire.Xls使用(4)对数据操作与控制
9
WCF初探-23:WCF中使用Message类(下)
10
设计模式问答(3)
1
VPS 自我监控
2
springboot接入多个ES启动时候自检报错
3
配置虚拟站点
4
openfire协议支持指南
5
修改上传文件权限
6
OpenVZ VPS 额外支持
7
2015年北京下第一场雪留念
8
openfire定制指南
9
mysql存储过程实例一:游标的使用
10
Linux删除或者新增SWAP分区
1
Augment Agent:自动生成代码的未来
2
使用 acme.sh 自动更新 SSL 证书的指南
3
使用Cloudflare加速网站的具体操作步骤
4
如何开通google Free Tier长期免费云服务器(1C/1G)
5
如何获取oracle cloud永久免费的vps(4C/24G)?
6
dify开启多租户模式
7
Dify 服务器部署指南
8
Spring Boot对接twilio发送邮件信息
9
Spring Boot中对接Twilio以实现发送验证码和验证短信码
10
如何利用Twilio Verify 发送验证码短信?
网站信息
文章总数:82,765 篇
文件总数:284,406 个
标签总数:2,442 个
分类总数:85 个
留言数量:2,563 条
在线人数:626 人
运行天数:4,608天
最后更新:2025年06月09日17点
×
输入密码查看文章详情
×
搜索文章
搜索
热门搜索:
Java
Springboot
Linux
Maven
Bootstrap
阿里云
×
评论信息框
可以通过QQ号实时获取昵称和头像
QQ
昵称
邮箱
网址
提交评论
×
山无棱江水为竭,冬雷震震夏雨雪,才敢请君舍
支付宝
微信
转账时请备注“
博客赞助
”
Loading...