在编译源文件时,所用到的其他源文件也会被自动编译。这是因为它会使用到其他源文件产生的字节码文件。

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的更多相关文章

  1. nodejs review-04

    79 Secure your projects with HTTPS Express 生成SSL证书 openssl genrsa -out privkey.pem 1023 openssl req ...

随机推荐

  1. 构造函数强制使用new

    function Car(model, year, miles) { if (!(this instanceof Car)) { return new Car(model, year, miles); ...

  2. 是面向对象设计五个基本原则(SOLID)

    单一职责原则 - 搜狗百科 https://baike.sogou.com/v51360965.htm 单一职责原则并不是一个孤立的面向对象设计原则,它是面向对象设计五个基本原则(SOLID)之一.这 ...

  3. Android系统移植与调试之------->如何修改Android手机NFC模块,使黑屏时候能够使用NFC

    我们都知道在不修改源代码的情况下,只能是解锁之后才能使用NFC功能.而在锁屏和黑屏2个状态下是没办法用NFC的,但是最近有个客户要求手机在黑屏状态下能够使用NFC,因此我们需要去修改Android源代 ...

  4. Redis3.2.8配置参数及说明

    bind 127.0.0.1# 绑定的主机地址,不设置默认将处理所有请求protected-mode yes# 是否开启保护模式,默认开启,要是配置里面没有指定bind和密码,开启该参数后,redis ...

  5. 玩转NumPy数组

    一.Numpy 数值类型 1.前言:Python 本身支持的数值类型有 int(整型, long 长整型).float(浮点型).bool(布尔型) 和 complex(复数型).而 Numpy 支持 ...

  6. Shell Step by Step

    @1:Command: ctrl+z  ------->切后台 fg ------->切前台 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + u :从光标 ...

  7. ubuntu搭建mib2c环境

    1.下载net-snmphttp://net-snmp.sourceforge.net/download.html例如,下载5.5版本2.进入下载目录,解压net-snmp压缩包#tar zxf ne ...

  8. python之路 正则表达式,模块导入的方法,hashlib加密

    一.正则表达式re python中re模块提供了正则表达式相关操作 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的 ...

  9. iOS 给 ViewController 减负 之 UITableView

    今天看了一些博客文章分享了如何给ViewController 瘦身的问题, 其中一个就是tableView. 的确,随着产品迭代,VC里面可能越来越臃肿,有时候真的需要好好进行一次瘦身.可能是参考的博 ...

  10. HttpServlet---getLastModified与缓存

    在HttpServlet中重写service方法的代码如下: protected void service(HttpServletRequest req, HttpServletResponse re ...