review04
在编译源文件时,所用到的其他源文件也会被自动编译。这是因为它会使用到其他源文件产生的字节码文件。
javac A.java A指的是源文件的名称
java B B指的是源文件中有main方法的类。
虽然在一个java源文件中可以有很多类,但是仍然提倡在一个java源文件中只编写一个类。
参数传值
如果向方法的int型参数x传递一个int值,那么参数x得到的是传递的值的拷贝。如果改变x的值是不会影响到向参数传递变量的值。反之亦然。
组合和复用
如果一个对象a组合了对象b,那么对象a就可以委托对象b调用其方法,即对象a以组合的方式复用对象b的方法。
在声明成员变量时,用关键字static给与修饰的称作类变量,也叫静态变量,否则称为实例变量。
类变量可以直接通过类名来访问,但是不可以通过对象来访问。实例变量可以通过对象名访问,不能通过类名来访问。
在java程序被运行时即使类没有创建对象,实例变量也可以分配到内存。
实例方法和类方法的区别
在方法前面加上static修饰,该方法就是类方法,否则就是实例方法。
当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,只有该类创建对象后,实例方法才被分配内存地址。
在第一个对象被创建时,类中的实例方法被分配了入口地址,当再创建对象时不再分配入口地址,也就是说方法的入口地址被所有对象所共享。当所有的对象都不存在时,方法的入口地址才被取消。
而对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址,类方法的入口地址直到程序退出才被取消。
和实例方法不同的是,类方法不可以操作实例变量,这是因为在对象创建之前,实例变量还没有分配内存。
如果一个方法不需要操作类中的任何变量,就可以满足程序的需要,就可以考虑将这个方法设计成为一个static方法。
方法重载
方法的返回类型和参数的名字不参与作为判定重载的比较。
this关键字
this是java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但是不可以出现在类方法中,这是因为类方法可以通过类名直接调用,这时可以能还没有对象产生。
java不允许用户程序使用java作为包名的一部分。
import
java.lang包是java语言的核心类库,它包含了运行java程序必不可少的系统类,系统将为程序自动引入java.lang中的类(比如System类,Math类)。
如果使用import语句引入了整个包中的类,可能会增加编译时间,但绝对不会影响程序运行的性能。因为当程序执行时,只是将程序真正使用的类的字节码文件加载到内存。
用户为了使用自己的写的包,可以把包所在路径加在环境变量中。也可以直接放在C:\目录下。因为环境变量中本来就有“.;”。
类的访问权限
当class前面没有加访问权限符时,默认的是友好类。不能用protected和private修饰类。访问权限的顺序:public、protected、友好的、private。
private访问权限的变量只能在本类中被访问。外部类可以自由访问和操作内部类中private变量和private方法。
基本类型的封装类
java的基本数据类型有:byte,short,int,long,float,double,char,boolean
Double和Float类实现了对double和float基本类型数据的类包装。Double对象调用doubleValue()方法可以返回该对象含有的double型数据;Float同理,floatValue()。
其他同理,byteValue(),shortValue().....
编译
使用JDK提供的反编译器javap.exe可以将字节码反编译为源码,以便查看源码类中的public方法和public成员变量。
可以使用JDK提供的javadoc.exe制作源文件类结构的html格式文档。
jar文件
使用java运行环境扩展中的类。使用jar命令将类的字节码文件压缩成一个jar文件,然后将这个jar文件存放到java运行环境的扩展中。首先编写清单文件hello.mf,
然后进入到包的上一层目录中,使用jar命令。
如
jar cfm Jerry.jar hello.mf 路径
将生成的jar文件放在JDK安装目录的jre\lib\ext文件夹中。
流水线编程
如果对象a含有对象b的引用,对象b含有对象c的引用,那么就可以使用a,b,c搭建流水线,即建立一个类,该类同时组合a,b,c三个对象。可以让a,b,c三个对象轮流对数据进行处理。
review04的更多相关文章
- nodejs review-04
79 Secure your projects with HTTPS Express 生成SSL证书 openssl genrsa -out privkey.pem 1023 openssl req ...
随机推荐
- redis集群报错,(error) MOVED 15495 127.0.0.1:7003
节点会对命令请求进行分析和key的slot计算,并且会查找这个命令所要处理的键所在的槽.如果要查找的哈希槽正好就由接收到命令的节点负责处理, 那么节点就直接执行这个命令. 另一方面, 如果所查 ...
- eclipse content assist 出现错误
解决方法是,在Window->preference->java->editor>Content Assist->advanced ,将 time out 由50 ms 改 ...
- coursera 《现代操作系统》 -- 第十三周 期末考试
一些概念在书上不好找,可以通过谷歌搜索,比如搜索中断向量, site:coursera.org 中断向量 3 下列关于中断和异常的叙述中,哪一个是错误的? x86系列处理器提供的4个处理器特权级 ...
- urlencode rawurlencode htmlspecialchars htmlentities
w string urlencode ( string $str ) 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+).此 ...
- KVM WEB管理工具webvirtmgr安装和使用
生产环境的KVM宿主机越来越多,需要对宿主机的状态进行调控.这里用webvirtmgr进行管理.图形化的WEB,让人能更方便的查看kvm 宿主机的情况和操作 1 安装支持的软件源 yum -y ins ...
- 前端基础 & 初识HTML
WEB 服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bin ...
- docker介绍和简单使用
docker介绍 docker 为什么会有docker出现? 一款产品从开发到上线,从操作系统到运行环境,再到应用配置,作为开发+运维直接的协作我们需要关心很多东西,这也是互联网公司不得 不面对问题, ...
- python多线程(三)
同步锁 两个需要注意的点: 线程抢的是GIL锁,GIL锁相当于执行权限,拿到执行权限后才能拿到互斥锁Lock,其他线程也可以抢到GIL,但如果发现Lock仍然没有被释放则阻塞,即便是拿到执行权限GIL ...
- openssl之EVP系列之7---信息摘要算法结构概述
openssl之EVP系列之7---信息摘要算法结构概述 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成 (作者:Dragon ...
- 002-maven修改仓库以及镜像地址
1.将下载好的maven,修改配置 <localRepository>G:\mavenrepository-idea</localRepository> 2.修改增加镜像地址 ...