Java web常用知识点

html:标签已经定义,数据和表示混合在一起
xml:自己定义标签,只是表示数据,关于如何显示没有定义。


DTD:文档类型定义,来规范XML文档。



java 序列化技术



编码

编码的原因:
计算机中存储信息的最小单元是一个字节,即8个bit,所以能表示的字符范围是0-255
人类要表示的字符太多,无法用一个字节来完全表示
要解决这个矛盾,必须要用一个新的数据结构char,从cha到byte必须编码
常用的编码方式:ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16

Unicode(Universal Code 统一编码)
UTF-16:用两个字节表示一个字符,java以UTF-16作为内存的字符存储格式。




InputeStreamReader类就是关联字节到字符的桥梁,它负责在I/O过程中处理读取字节到字符的转换,而具体字节到字符的解码实现它又委托StreamDecoder去做,在StreamDecoder解码过程中必须由用户指定Charset编码格式。如果没有指定Charset,将使用本地环境的默认字符集。

字符流和字节流之间的相互转化

整个IO包实际上分为字节流和字符流,但是除了这两个流之外,还存在一组字节流-字符流的转换类。
OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流输出对象。
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象。
如果以文件操作为例,则内存中的字符数据需要通过OutputStreamWriter变为字节流才能保存在文件中,读取时需要将读入的字节流通过InputStreamReader变为字符流。过程如下:
写入数据-->内存中的字符数据-->字符流-->OutputStreamWriter-->字节流-->网络传输(或文件保存) 读取数据<--内存中的字符数据<--字符流<--InputStreamReader<--字节流<--网络传输(或文件保存)
可以清楚地发现,不管如何操作,最终全部是以字节的形式保存在文件中或者进行网络传输。

public class encode {     @SuppressWarnings("resource")    public static void main(String[] args) throws Exception {        

String file = "stream";        String charset = "UTF-8";

        FileOutputStream outputStream = new FileOutputStream ( file ) ;
        OutputStreamWriter writer = new OutputStreamWriter ( outputStream , charset ) ;//字符流转化为字节流
        String s = "这是要保存的中文字符" ;
        writer . write ( s ) ;
        writer . close () ;//必须close
        FileInputStream inputStream = new FileInputStream ( file ) ;
        InputStreamReader reader = new InputStreamReader ( inputStream ) ;//字节流转化为字符流

        StringBuffer buffer = new StringBuffer();        

char[] buf = new char[64];      

 int count = 0;       

while ((count = reader.read(buf)) != -1) {           

buffer.append(buf, 0, count);        }      

  reader.close();       

System.out.println(buffer.toString());    }

}

内存操作中的编码

String 提供了将字节和字符相互转化的函数
String s=“这是一段中文字符串”;
byte[] b=s.getBytes(“UTF-8”);
String n=new String(b,”UTF-8)"

前后编码要一致







javac 编译原理

javac 任务就是将java语言规范转化成java虚拟机语言规范,完成翻译工作。

Servlet 详解




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值