Java高级编程 魏勇 清华大学出版社
ISBN-9787302450948
仅供参考, 自建索引, 以备后查
一、javadoc、jar、JMX、SVN、Git
/**
* 此类注释出在执行命令后生成文档,而且只在public方法、属性上有效
* @author Colin
* @version 1.3.2 Colin 2020-11-19 <br/>
* 1.3.3 Colin 2021-01-19
*/
# javadoc [options] [packagenames] [sourcefiles] [@files]
[options]
-sourcepath E:\workspace\socket-http test.java0.socket_http
切换到 E:\workspace\socket-http 文件夹开始编译包
-classpath E:\workspace\maven-repository\
引用 E:\workspace\maven-repository\ 目录中的jar引用类
[packagenames] 不支持递归子包,无通配符
[@files] 读取文件内容进行编译
如 package-compile.txt 文件内容如下
com.baidu.advertisement
com.baidu.videoshare
则执行 # javadoc -d apidoc @package-compile.txt 后
会对文件中的包中的java文件进行编译
install4j exe4j TowerJ jaxegen.exe InstallAnywhere JET JOVE JToExe
MANIFESAT.MF 一般放置于 META-INF/ 文件夹
Manifest-Version: 1.0
Main-Class: test.java0.socket_http.SocketHttpFileStarter
Created-By: 1.0.1 Colin
# cd /d E:\workspace\socket-http
# jar cvfm socket-http.jar MANIFEST.MF test.java0.socket_http
JMX (Java Management Extensions) 为应用程序、设备、系统植入管理功能的框架
虽然这么印刷的,还没太深入理解,倒是加入到了项目中,发现也挺有用
javax.management.MBeanServer JMX代理层核心 (个人理解:类似于反射工具类)
javax.management.ObjectName 用于为类指定标识名,用于查找类实例对象
public static void main(String[] args) throws Exception {
String dir = "E:/workspace/filesocket/src/main/webapp";
HttpFileServerSocket hfss = HttpFileServerSocket.getInstance().setWebDir(dir);
new Thread(hfss).start();
ObjectName sn = new ObjectName("HttpFileServerSocket:name=DirSetter");
/// MBeanServer mbs = MBeanServerFactory.createMBeanServer();
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); /// 推荐
/// 为 hfss 实例注册 之后可以进行管理
mbs.registerMBean(hfss, sn);
}
打到 JAVA_HOME\bin 目录下 jconsole
# jconsole 运行
选择对应的进程
对于我的这个程序来说,作用就是动态修改了某个属性
Subversion:SVN服务提供程序
TortoiseSVN:SVN独立客户端
SVNService.exe:把SVN加入到Windows服务
TortoiseGit:Git客户端软件
二、顺序、链式存储、队列、堆栈、树、二叉树
队列 First In First Out Vector rear: 队列尾部 front: 队列头部
堆栈 Last In First Out Stack
如:进制转换可以把 余数 及最后 商 依次入栈,再全部出栈即可
Java中的链式是自身引用实现,C、C++中则使用指针实现
class ListNode { Object data; ListNode next; }
单向链表、单向循环链表、双向链表
interface ListIterator extends Iterator { } Java中的双向遍历接口
先根 中 左 右
中根 左 中 右
后根 左 右 中
T=(D,R) D:所有结点集合 R:节点关系集合
二叉树 Binary Tree 顺序存储(完全二叉树比较合适)或链式存储均可实现
Enumeration 传统数据结构使用此类遍历
public SequenceInputStream(Enumeration<? extends InputStream> e) { }
Properties extends Hashtable<Object, Object> { }
BitSet <========
三、多层网络结构、Socket、WebSocket
OSI 网络七层结构
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
TCP/IP Transport Control Protocol / Internet Protocol
- 链路层:数据链路层或网络接口层,与操作系统的设备驱动程序和网络接口卡交互
- 网络层:IP地址 InetAddress Inet4Address Inet6Address
- 传输层:端口号,TCP/IP 数据传输控制 Socket ServerSocket DatagramPacket DatagramSocket MulticastSocket
- 应用层:最上层协议 ftp http smtp pop3 telnet
URL Uniform Resource Locator
openStream() getContent() openConnection()
URLConnection
MIME Multipurpose Internet Mail Extensions 多用途Internet邮件扩展
IP地址分类 <========
Socket 实现 Web 服务器
可以参考 https://blog.csdn.net/u011225581/article/details/112516987
HTTP请求报文 请求行 请求头部 空行 请求数据
Java中 浏览器 组件
JEditorPane Lobo+FramePanel JDIC+JDICPlus SWT+Browser
J2ME cHTML Browser
Dooble
j2wap WAP浏览器
Proteus 基于J2ME的手机浏览器
jCellBrowser 同上
MicroBrowser4ME 同上
MoDaBrowser
WebSocket 可以参考 https://blog.csdn.net/u011225581/article/details/112465492
HTTP请求头中 Upgrade: websocket 表示需要切换到 websocket 进行通信
websocket 聊天程序示例
SMTP Simple Mail Transfer Protocol 简单邮件传输协议
邮件发送示例
四、MINA、状态转换
MINA Multipurpose Infrastructure for Network Applications
ApacheDirectory、AsyncWeb、ApacheQpid、QuickFIX/J、
Openfire、SubEthaST