我的java培训日记

原创 2007年09月25日 14:38:00

                                                  传智播客java培训日记-1

1. 同学沈龙的一个问题
他用javac(1.4)编译,用java(1.6)运行,出现不支持的类版本错误。我们用javac -version和java -version各看了一下版本,就发现了这个问题。然后查看path环境变量,发现他计算机上安装了oracle,oracle/bin排在了整个path的前面,调整path,让jdk1.6/bin排在最前面即可。
2. 由内存中一切皆二进制引出字符编码的讲解
大陆写的“中”到台湾显示不正常的原理分析,翻译软件的翻译原理,GBK-->“中”-->BIG5。讲解UTF-8编码和unicode编码,ASCII与Unicode码的转换规则,演示记事本显示字符时的趣味问题,分析乱码原因,GB2312码中也包含英文字符,如何识别GB2312码中的英文与汉字。最后课结束时讲了GB18030,如何支持?
3. xml文档中设置encoding属性的重要性
xml文档保存的编码类型和encoding指定的编码方式是两码事,前者表示xml文档内容的编码方式而后者是告诉解析器以什么编码方式来解析xml文档。二者必须一致,否则在浏览器中打开xml文档就会出现问题。默认情况下encoding属性的值是UTF-8。
沈继龙:以为指定了encoding="GBK",那文件就用GBK保存了,这正好理解反了。我是张,我戴顶帽子说明我是张,以便解析软件知道我是谁,如果我戴顶李的帽子,解析软件就认为我是李,显然就出了问题。
4. CDATA
要小心的是XML文档是通过一个程序生成出来的,如下所示的一个jsp程序,对于用变量生成的信息,
要特别注意加上CDATA区。
<%@page pageEncoding="GBK"%>
<%@page contentType="text/xml;charset=UTF-8"%>
<?xml version="1.0" encoding="UTF-8"?>
<country>
              <name>中国</name>
              <info><![CDATA[${param.info}]]></info>
</country>
这个JSP文件涉及了两个编码:源文件是用什么码写的,程序执行后以什么码输出结果。
为了加深理解处理软件必须文件中的字符编码的情况,又演示了javac编译utf-8源文件的问题。
与CDATA区类似的一个小技巧:
              <%@page pageEncoding="GBK"%>
              <form>
                     <input type="hidden" name="email" value="${param.email}"/>
                     请输入用户名:<input type="text" name="name" />
              </form>
如果给隐藏字段传递的参数是“zxx" a="b”,那么也会出问题,对于程序生成值时,一定要考虑值的特殊情况。
5. 编码转换
编码转换程序:
              char [] codes = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
              byte b = (byte)Integer.parseInt(args[0]);
              System.out.print(codes[((b>>4) & 0x0f)]);
              System.out.println(codes[(b & 0x0f)]);      
得到字符的big5码
<%@page pageEncoding="GBK"%>
<%@page contentType="text/html;charset=GBK"%>//修改contentType="audio/x-mp3"说明头的作用
<%
       String china="中一二";
       for(int i=0;i<china.length();i++)
       {
              out.println(Integer.toHexString((int)china.charAt(i)));
       }
       System.out.println();
       byte[] bufGBK = china.getBytes("GBK");
       for(int i=0;i<bufGBK.length;i++)
       {
              out.println(Integer.toHexString(bufGBK [i]));
       }
       byte[] buf = china.getBytes("Big5");
       for(int i=0;i<buf.length;i++)
       {
              out.println(Integer.toHexString(buf[i]));
       }
       byte [] buf ={0xa4, 0xa4,0xa4,0x40,0xa4,0x47}
%>
输出big5码给浏览器:
<%
       byte [] buf ={(byte)0xa4, (byte)0xa4,(byte)0xa4,(byte)0x40,(byte)0xa4,(byte)0x47};
       response.getOutputStream().write(buf);
%>
6. 区分中文英文的程序代码
buf[] = new byte[1024];
int len = System.in.read(buf);
boolean halfChinese = false;
for(int i=0;i<len;i++)
{
       if(halfChinese)
       {
              //buf[i-1] + buf[i]合并
              System.out.write('[');
              Systen.out.write(buf[i-1]);
              Systen.out.write(buf[i]);
              System.out.write(']');
              halfChinese = false;
              continue;
       }
       if((buf[i] & 0x80) == 0)
       {
              //为什么必须用write???
              System.out.write('[');
              Systen.out.write(buf[i]);
              System.out.write(']');
       }
       else
       {
              halfChinese = true;
              //等下一个,暂时不处理
              /*
              System.out.write('[');
              Systen.out.write(buf[i++]);
              Systen.out.write(buf[i]);
              System.out.write(']');
              */
       }
}
System.out.write();方法要用flush();刷新缓存,才能正常显示。
我写的代码,但还有地方没弄明白:为什么去掉了if()判断是否有'/r','/n'后,显示的结果不正常。
import java.io.*;
class TestInputChinese {
       public static void main(String[] args) {
              byte[] buf = new byte[1024];
              int len = 0;
              try {
                     len = System.in.read(buf);
              }catch(IOException e) {
                     e.printStackTrace();
              }
              change(buf, len);
       }
       public static void change(byte[] b, int len) {
              for( int i=0; i<len; i++ ) {
                     if(b[i] == '/r' || b[i] == '/n' ) {
                            continue;
                     }
                     if((b[i] & 0x80) == 0 ) {
                            System.out.write('[');
                            System.out.write(b[i]);
                            System.out.write(']');
                     } else {
                            System.out.write('[');
                            System.out.write(b[i++]);
                            System.out.write(b[i]);
                            System.out.write(']');
                     }
              }
              System.out.flush();
       }
}
 
详细查询:www.itcast.cn 

10月23日java web培训日记

分析了客户端身份认证的例子程序,讲解到Digest认证时,顺便提了一下SSLServerSocket,要求学员们能够通过SSLServerSocket的创建过程阐述工厂模式为了更好地读懂Authent...
  • zhangxiaoxiang
  • zhangxiaoxiang
  • 2006年10月23日 18:23
  • 2429

2.5培训日记

学习java 老师布置任务
  • aoliao_
  • aoliao_
  • 2018年02月05日 17:32
  • 10

17年四月二十七日javaweb学习日记

今天看了Cookie。Httpsession。javaBean。EL表达式还有一点标签的内容。      Cookie呢就是在创建Cookie对象的时候在构造器里面传入两个参数。(“arg1”,ar...
  • hello_world_Xu
  • hello_world_Xu
  • 2017年04月27日 23:17
  • 492

java实习日记三

今天,我完成了对于图片的显示功能。我通过上网查找如何让图片在java上显示出来。写入一段代码在原代码上实现了图片的显示。今天也只能做到这里。明天继续去完成猜猜看的名字配对部分  import ...
  • u013993272
  • u013993272
  • 2015年07月01日 11:39
  • 1047

学习日记-html5

已掌握:学习并使用过HTML, CSS, 但并不熟练,特别是css常用效果了解但对于不常用的能实现的效果不清晰,html的各种标签除常用部分,其他在使用时需要去查询. 今日学习:html5 发展,与...
  • trch1989
  • trch1989
  • 2017年02月06日 16:50
  • 177

培训案例: 一个项目经理的工作日志

  一个项目经理的工作日志: 这一天,我们的部门研发经理把我叫了过去,告诉我我们小组要接手一个新的项目,这个项目已经经过客户和公司两方高层的确认了,最后要求完成的时间是2个月,也就是在6月5日之前必须...
  • findsun
  • findsun
  • 2004年07月31日 09:26
  • 6340

黑客日记:我是一个黑客

这几天眼睛要好受些了,因为刚买了一个15’的液晶显示器。也许你会觉得我以前的那个特丽珑的17"的显示器应该很威风才对。呵呵,对一个整天15个小时以上坐在显示器面前,距离不超过30厘米的人来说。那个CR...
  • luxuheng
  • luxuheng
  • 2014年01月03日 15:59
  • 1924

培训日记与自己的想法

  ……培训日记像我当时想的一样 如实的记载每天的培训内容,尽可能的详细,既方便了以后的复习,也同时可以或多或少的对其他的一些人有一定的帮助,应该还是有意义的,当然了,日记之所以有的时候能记录的很详细...
  • ecaterina
  • ecaterina
  • 2007年02月28日 16:00
  • 859

【转载】傻根同志的.NET学习日记

用C#做网站,感觉该编程语言对数据方面很仔细的设计, 暂时感受的C#特点:整个网站工程被分为三层:数据底层数据中间层(中介性质的)业务表达层 数据底层:连接数据库的文件,公司已经有现成的编译完成文件类...
  • qdzx2008
  • qdzx2008
  • 2006年02月19日 22:19
  • 1220

我的一次java培训经历

说说自己的一段培训经历吧,在这里跟大家分享一下。 今年的暑假,脑子一热就去参加了某公司的java培训,当时考虑到去培训有几个原因:一个就是自己的项目实践能力确实不太行,除了几个学校的课程设计之外...
  • maojycom
  • maojycom
  • 2014年12月03日 18:19
  • 2473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的java培训日记
举报原因:
原因补充:

(最多只允许输入30个字)