MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » 小弟我对java中的编码,类加载,类路径查找,集合等

小弟我对java中的编码,类加载,类路径查找,集合等机制的理解,欢迎朋友们批评指正

www.MyException.Cn  网友分享于:2015-08-26  浏览:8次
我对java中的编码,类加载,类路径查找,集合等机制的理解,欢迎朋友们批评指正!
【声明】: 标题某些内容另一帖发出,可能缘于那个帖有点长,朋友们对这几个问题互动不多,今整理后发在此,诚请朋友们提出批评:

一,我对java中编码的理解
1. 编码的产生 
  对电脑而言,只认识0,1; 而现实世界是由各种符合组成,要想让计算机解释现实世界,就必须建立一套现实世界中的符号 和 计算机能处理的符号之间的对应关系,这个对应关系就是编码 

2. 在一个编辑器中,当我们在键盘上敲入一个字符时,在该编辑器上就会显示对应的字符,这个过程用计算机执行步骤来解释大致如下: 
  输入字符 –> 编辑器根据设定的编码格式把字符编成01格式 -> 编辑器再按编码规则对01解码–> 显示字符 

3.几种常见的编码格式 
1. ASCII码:  
  计算机中最早的一套编码格式,采用7位二进制表示一个常见的字符,我们知道,计算机是按照字节来处理数据的,一个字节8位,因此用一个字节就可以表示一个ASCII字符,且还有一个位空位,规定最高位不用,常见的把最高位设定为0。 7位二进制最多可以表示128个字符(2的7次方),ASCII码只能表示常见的英文字符,数字,和少量的符号(没办法,谁让计算机是人家老美先发明的啊,优先考虑本土语言,理解理解) 
注: 由于ASCII最早定义,使用广泛,使得之后出现的新的”字符“(不是汉字喔)编码都尽量和它兼容 

2. iso-8859-1: 
  尽管ASCII应用广泛,但是由于它定义的字符太少,即使对于同是使用字母语言的国家也不够用,更别说我们汉字啦,西欧许多国家使用拉丁语言,其中的很多字符ASCII编码都不认识喔,这当然会让它们不爽啦,总不能因为这个问题让那些国家的人不使用电脑吧, 于是ISO/IEC就推出了另外的一套编码标准ISO-8859-1. 这套标准完全和ASCII兼容,它使用8位二进制表示一个字符 —--- 刚好一个字节,其中最高位是0时的解释和ASCII一样(这样不就完全兼容啦,兼容很好理解吧),但最高位是1时则用于定义其它字符,这样就在保证和ASCII兼容的同时又扩展了ASCII,可以多表示字符啦 

3. GBK编码 
  光有字母语言国家的编码就可以么?, 可以啊,好好学习英语啊, 要不你看不懂啊,不想学?,那就不玩啊,呵呵,当然不会啦,对于中国,韩国,日本等这些国家,推出了一种新的编码GBK码, 在编码上GBK采用单双字节混合的方式,它也兼容ASCII喔,具体GBK怎么个编码,你查看资料啦, 这里重点关注的是编码的演化,提供的是思路哈 

4. Unicode 
  Unicode是为了打破这种编码的各自为政,带有强烈地域性的标示而推出的一种编码格式,目的是要达到世界的大同,大同好啊,方便交流啊,就是晚了点,计算机一出现就出来多好,就没了现在让程序员头疼的编码转来转去的麻烦了,恩,看来有界限的人心是会带来麻烦的,好了,啰嗦了这么多,才算真正引入正题,为什么会出现乱码,如何解决乱码 
   
4. 揭示web中乱码的病因 
  比如说现在有两个人,张三 和 make分别来自中国和美国,现在他们访问同一台j2ee服务器,他们都向服务器发送了一条消息 
  张三: 嗨,我是张三 
  Make: hello, I’m make 
  假如张三发送的信息采用的编码格式是GBK, make的是ASCII, 对于浏览器而言,留言器没有把发送的信息采用的编码格式告诉给web服务器(之前的浏览器没提供这个功能,又是地域性的见识啊,现在最新版的不知道有没有),web服务器不知道你发过来的信息编码格式啊,怎么解释呢,没办法只好提供个默认的吧,恩还是用iso-8859-1吧(毕竟java也是老美搞出的啊,没办法),英语的没问题,web服务器能听懂,毕竟大家都说英语嘛,并且make对web服务器而言,懂得字母还少了点呢; 汉语的就不行了,就好比一个人只懂汉语,另一个人只懂英语,怎么交流啊,可以交流?那就只好”~!@#¥%“, 这就是java中乱码的病因吧 

5. 如何避免乱码的产生 
  知道了病因,对症下药就好啦,  
  1. 让浏览器明确指定信息的编码格式, 这个不行啦,程序员干涉不了啦,这不是你的问题啦,不知道现在的浏览器是否已提供这种机制啊,请知道的朋友明示:? 
  2. 明确采用GBK编码处理请求的数据啊 
  3. 因为一般的浏览器可以解析多种编码格式,我们的web响应内容,最好指定编码格式喔,这个大家都知道啦 
  4. 不知道那些国外的站点是如何处理中文的,请大师们开始啊 

  注: 以上是个人理解,错漏之处难免,欢迎抓虫 


------解决方案--------------------
呵, 不错, 类加载。对于Web来说, 不同的容器有不同的加载。 Tomcat 的加载就有扩展, 可以看一下Apcahe的官方上的。
------解决方案--------------------
可以看看这个, 
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
------解决方案--------------------
LZ深刻贴不少啊。
替你打个广告:
见:
http://topic.csdn.net/u/20090327/14/d2f8cef6-4648-4db0-b5a7-c1cefd8aa3ce.html
http://topic.csdn.net/u/20090327/14/d2f8cef6-4648-4db0-b5a7-c1cefd8aa3ce.html
http://topic.csdn.net/u/20090320/19/bf8ff66a-564c-4a0e-9d25-6ebf546f6164.html
------解决方案--------------------
像web开发中,jsp页面开头部分的
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
是说明传递给编译器编码格式的吗?
------解决方案--------------------
以前看了一个帖子。
如果说:
我自己定义了一个String类,构造函数什么的都自己写的话。
Java code

package java.lang;

public class String
{
    String s = null;
    public String(String s)
    {
        System.out.println("String Constructor!!!");
        this.s = s;
    }
}

------解决方案--------------------
所有的一切 都贵在总结!!!
这方面向房主学习!!!
------解决方案--------------------

文章评论

为什么程序员都是夜猫子
为什么程序员都是夜猫子
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
老程序员的下场
老程序员的下场
程序员的鄙视链
程序员的鄙视链
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
我是如何打败拖延症的
我是如何打败拖延症的
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员都该阅读的书
程序员都该阅读的书
编程语言是女人
编程语言是女人
每天工作4小时的程序员
每天工作4小时的程序员
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
那些争议最大的编程观点
那些争议最大的编程观点
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
旅行,写作,编程
旅行,写作,编程
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
中美印日四国程序员比较
中美印日四国程序员比较
一个程序员的时间管理
一个程序员的时间管理
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
如何成为一名黑客
如何成为一名黑客
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员和编码员之间的区别
程序员和编码员之间的区别
我的丈夫是个程序员
我的丈夫是个程序员
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
漫画:程序员的工作
漫画:程序员的工作
程序员必看的十大电影
程序员必看的十大电影
Java程序员必看电影
Java程序员必看电影
10个调试和排错的小建议
10个调试和排错的小建议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
 程序员的样子
程序员的样子
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
代码女神横空出世
代码女神横空出世
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有