随笔分类 - Java
摘要:字符与编码的发展系统内码说明阶段一ASCII计算机刚开始只支持英语,其它语言不能够在计算机上存储和显示。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。阶段二ANSI编码(本地化)为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。不同的国家和地区制定了不同
阅读全文
摘要:将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。一、序列化 ID 的问题场景:两个客户端 A 和 B 试图通过网络传递对象数据,A 端将对象 C 序列化为二进制数据再传给 B,
阅读全文
摘要:一、概念单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供全局访问点。这个类称为单例类。 二、要点单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的
阅读全文
摘要:一、概念Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。二、设计原则多用组合,少用继承。类应设计的对扩展开放,对修改关闭。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态地进行扩展。 三、要点:装饰者和被装饰对象有相同的超类型。可以用一个或多个装饰者包装一个对象。装饰者可以在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用你喜欢的装饰者来装饰对象。装
阅读全文
摘要:一、Struts工作原理1.1 Struts拦截用户请求Struts框架控制器分为核心控制器(拦截用户请求ActionServlet)和业务逻辑控制器(处理用户请求Action)。下面是序列图:1.2 Struts程序流程Client发出的请求被 ActionServlet拦截到后有两种情况:1.要求逻辑控制器处理,2.简单转发请求(Http请求无需Action处理,也不用填充ActionForm,直接转发)。Forward有全局和局部两种,局部优先。Action使用ActionMapping控制转发时,只需要转发到Forward的逻辑名,而无需知道具体的资源,这样可降低耦合程度。逻辑名与实际
阅读全文
摘要:一、网络编程基本概念1.OSI与TCP/IP体系模型2.IP和端口解决了文章最开始提到的定位的问题。IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证);网络编程是和远程计算机的通信,所以必须先能定位到远程计算机;IP帮助解决此问题;一台计算机中可能有很多进程,具体和哪一个进程进行通信,这就得靠端口来识别;IP和端口能唯一定位到需要通信的进程。这里的IP表示地址,区别于IP协议。在OSI体系还是TCP/IP体系中,IP协议位于网际层,来封装IP地址到报文中。3.TCP和UDP协议TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议
阅读全文
摘要:1.什么是类和对象?EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。能够做什么(方法):告诉外界对象有那些功能。对象:对现实世界中的实体的抽象。在计算机中,是指可标识的存储区域。类:具有共同属性和行为的对象的抽象。类是创建对象的模板。2.为...
阅读全文
摘要:线程的概念和原理为什么使用多线程?为了更高效的完成任务和利用CPU资源,现在的操作系统设计为多任务操作系统,而多进程和多线程是实现多任务的方式。什么是进程和线程?进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。进程是OS分配资源的最小单位。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。进程是OS调度的最小单位。工作原理?多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系
阅读全文
摘要:Eclipse 3.4 (Ganymede)启动 Eclipse,然后选择Help >Software Updates…。在出现的对话框中,单击Available Software 选项卡。单击Add Site…在 Add Site 对话框的 Location 字段中输入下面的 URL:https://dl-ssl.google.com/android/eclipse/注意:如果访问该插件时遇到问题,可以将 URL 中的 https 改成 http(使用https会更安全一些)。单击 OK。回到 Available Software 界面,应该可以看到 URL 中包含的插件列表,其中有
阅读全文
摘要:以前做过一两年的Java开发,但时间长未用,很多东西用起来都感觉生疏了好多,所以想经常把自己走过的痕迹记录下来。怎样才算是Java高手呢?在刚学java时候就问过自己,也在不断地自己回答自己,但是很快就发现答案不对,于是又在试图给自己寻找一个正确的答案,但是到最后过一段时间自己把这个答案抹掉,到现在还在问自己这个问题,一个没有答案的问题。这个问题之所以没有答案,因为每个人看问题的角度不一样,给出的标准不一样,而又没有官方上的标准,在这里也是发表一下自己的看法,当然只是暂时的,或许明天这个答案又被自己否定了,希望能与各位多多交流,同时也希望各位多发表自己的意见。先看一下我理解的Java的核心吧我
阅读全文

浙公网安备 33010602011771号