文档库 最新最全的文档下载
当前位置:文档库 › (转)java byte与char、String互转原理

(转)java byte与char、String互转原理

(转)java byte与char、String互转原理
(转)java byte与char、String互转原理

(转)java byte与char、String互转原理

2009-10-21 19:22

转:https://www.wendangku.net/doc/aa10443243.html,/bluespot/archive/2008/10/23/1318155.html

一、字节和unicode

Java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。因此Java要对这些字节流经行转化。 char是unicode的,而byte是字节。Java中byte/char互转的函数在sun.io的包中间有。其中ByteToCharConverter类是中调度,可以用来告诉你,你用的convertor。其中两个很常用的静态函数是:

public static ByteToCharConverter getDefault();

public static ByteToCharConverter getConverter(String encoding);

如果你不指定converter,则系统会自动使用当前的encoding,gb平台上用gbk,en平台上用8859_1。

byte——〉char:

"你"的gb码是:0xc4e3 ,unicode是0x4f60

String encoding = "gb2312";

byte b[] = {(byte)'\u00c4',(byte)'\u00e3'};

ByteToCharConverter converter = ByteToCharConverter.getConverter(encoding);

char c[] = converter.convertAll(b);

for (int i = 0; i < c.length; i++) {

System.out.println(Integer.toHexString(c[i]));

}

结果是什么?0x4f60

如果encoding ="8859_1",结果又是什么?0x00c4,0x00e3

如果代码改为:

byte b[] = {(byte)'\u00c4',(byte)'\u00e3'};

ByteToCharConverter converter = ByteToCharConverter. getDefault();

char c[] = converter.convertAll(b);

for (int i = 0; i < c.length; i++) {

System.out.println(Integer.toHexString(c[i]));

}

结果将又是什么?

这就要根据平台的编码而定。

char——〉byte:

String encoding = "gb2312";

char c[] = {'\u4f60'};

CharToByteConverter converter = CharToByteConverter.getConverter(encoding);

byte b[] = converter.convertAll(c);

for (int i = 0; i < b.length; i++) {

System.out.println(Integer.toHexString(b[i]));

}

结果是什么?0x00c4,0x00e3

如果encoding ="8859_1",结果又是什么?0x3f

如果代码改为

String encoding = "gb2312";

char c[] = {'\u4f60'};

CharToByteConverter converter = CharToByteConverter.getDefault();

byte b[] = converter.convertAll(c);

for (int i = 0; i < b.length; i++) {

System.out.println(Integer.toHexString(b[i]));

}

结果将又是什么?还是根据平台的编码而定。

很多中文问题就是从这两个最简单的类派生出来的。而却有很多类不直接支持把encoding输入,这给我们带来诸多不便。很多程序难得用encoding了,直接用default的encoding,这就给我们移植带来了很多困难。

二、utf-8

utf-8是和unicode一一对应的,其实现很简单:

7位的unicode: 0 _ _ _ _ _ _ _

11位的unicode: 1 1 0 _ _ _ _ _ 1 0 _ _ _ _ _ _

16位的unicode: 1 1 1 0 _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _

21位的unicode: 1 1 1 1 0 _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _

大多数情况是只使用到16位以下的unicode:

"你"的gb码是:0xc4e3 ,unicode是0x4f60

0xc4e3的二进制:

1100 ,0100 ,1110 ,0011

由于只有两位我们按照两位的编码来排,但是我们发现这行不通,因为第7位不是0因此,返回"?"

0x4f60的二进制:

0100 ,1111 ,0110 ,0000

我们用utf-8补齐,变成:

1110 ,0100 ,1011 ,1101 ,1010 ,0000

e4--bd-- a0

于是返回:0xe4,0xbd,0xa0。

三、string和byte[]

string其实核心是char[],然而要把byte转化成string,必须经过编码。string.length()其实就是char数组的长度,如果使用不同的编码,很可能会错分,造成散字和乱码。例如:

String encoding = “”;

byte [] b={(byte)'\u00c4',(byte)'\u00e3'};

String str=new String(b,encoding);

如果encoding=8859_1,会有两个字,但是encoding=gb2312只有一个字这个问题在处理分页是经常发生。

四、Reader,Writer / InputStream,OutputStream

Reader和Writer核心是char,InputStream和OutputStream核心是byte。但是Reader和Writer的主要目的是要把char读/写InputStream/OutputStream。例如:

文件test.txt只有一个"你"字,0xc4,0xe3

String encoding = "gb2312";

InputStreamReader reader = new InputStreamReader(new FileInputStream(

"text.txt"), encoding);

char c[] = new char[10];

int length = reader.read(c);

for (int i = 0; i < length; i++) {

System.out.println(c[i]);

}

结果是什么?是"你"。如果encoding ="8859_1",结果是什么?"??"两个字符,表示不认识。反过来的例子自己做。

五、我们要对Java的编译器有所了解:

Javac ?encoding

我们常常没有用到encoding这个参数。其实encoding这个参数对于跨平台的操作是很重要的。如果没有指定encoding,则按照系统的默认 encoding,gb平台上是gb2312,英文平台上是iso8859_1。Java 的编译器实际上是调用sun.tools.Javac.main 的类,对文件进行编译,这个类有compile函数中间有一个encoding的变量,-encoding的参数其实直接传给encoding变量。编译器就是根据这个变量来读取Java文件的,然后把用utf-8形式编译成class文件。例子代码:

String str = "你";

FileWriter writer = new FileWriter("text.txt");

write.write(str);

writer.close();

如果用gb2312编译,你会找到e4 bd a0的字段;

如果用8859_1编译, 00c4 00e3的二进制:

0000,0000 ,1100,0100 ,0000,0000 ,1110,0011

因为每个字符都大于7位,因此用11位编码:

1100,0001,1000,0100,1100,0011,1010,0011

c1-- 84-- c3-- a3

你会找到c1 84 c3 a3

但是我们往往忽略掉这个参数,因此这样往往会有跨平台的问题:

样例代码在中文平台上编译,生成zhclass

样例代码在英文平台上编译,输出enclass

(1) zhclass在中文平台上执行ok,但是在英文平台上不行

(2) enclass在英文平台上执行ok,但是在中文平台上不行

原因是:

(1) 在中文平台上编译后,其实str在运行态的char[]是0x4f60, 在中文平台上运行,filewriter的缺省编码是gb2312,因此 chartobyteconverter会自动用调用gb2312的converter,把str转化成byte 输入到fileoutputstream 中,于是0xc4,0xe3放进了文件。但是如果是在英文平台下,chartobyteconverter的缺省值是8859_1, filewriter会自动调用8859_1去转化str,但是他无法解释,因此他会输出"?"

(2) 在英文平台上编译后,其实str在运行态的char[]是0x00c4 0x00e3, 在中文平台上运行,中文无法识别,因此会出现??;在英文平台上,0x00c4-->0xc4,0x00e3->0xe3,因此 0xc4,0xe3被放进了文件。

六、其它原因:

<%@ page contentType="text/html; charset=GBK" %>

设置浏览器的显示编码,如果response的数据是utf8编码,显示将是乱码,但是乱码和上述原因还不一样。

七、发生编码的地方:

1. 从数据库到Java程序byte——〉char

2. 从Java程序到数据库char——〉byte

3. 从文件到Java程序byte——〉char

4. 从Java程序到文件char——〉byte

5. 从Java程序到页面显示char——〉byte

6. 从页面form提交数据到Java程序byte——〉char

7. 从流到Java程序byte——〉char

8. 从Java程序到流char——〉byte

可以使用配置过滤器的方法解决中文乱码的:

RequestFilter

net.golden.uirs.util.RequestFilter

charset

gb2312

RequestFilter

*.Jsp

public void doFilter(ServletRequest req, ServletResponse res,

FilterChain fChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res;

HttpSession session = request.getSession();

String userId = (String) session.getAttribute("userid");

req.setCharacterEncoding(this.filterConfig.getInitParameter("charset")); // 设置字符集?

//实际上是设置了byte ——〉char的encoding

try {

if (userId == null || userId.equals("")) {

if (!request.getRequestURL().toString().matches(

".*/uirs/logon/logon(Controller){0,1}\\x2EJsp$")) {

session.invalidate();

response.sendRedirect(request.getContextPath() +

"/uirs/logon/logon.Jsp");

}

}

else {

// 看看是否具有信息上报系统的权限

if (!net.golden.uirs.util.UirsChecker.check(userId, "信息上报系统",

net.golden.uirs.util.UirsChecker.ACTION_DO)) {

if (!request.getRequestURL().toString().matches(

".*/uirs/logon/logon(Controller){0,1}\\x2EJsp$")) {

response.sendRedirect(request.getContextPath() +

"/uirs/logon/logonController.Jsp");

}

}

}

}

catch (Exception ex) {

response.sendRedirect(request.getContextPath() +"/uirs/logon/logon.Jsp"); }

fChain.doFilter(req, res);

第四单元计算机网络常见的操作系统

windos 2003 server实用教程 一、单元目标、任务:任课教师:高鹏 本单元课程标题:常见计算机网络的操作系统 授课班级 10中职5、6班 课时 2 时间 2011.11.15 授课地点 阶教 教学目标 能力(技能)目标 知识目标 1.会正确识别windos2003系列的nos及安装目标 2.能正确识别常规的网络操作系统光盘阅读相关参数 1.掌握常规的网络操作系统的类型 2.了解unix,linux,操作系统的发展背景 3.掌握windos2003 server 的四个版本类型 4.了解操作系统与网路操作系统的区别和联系 5.掌握nos的常规网络服务项目. 能力训练任务及案例

案例1:我系机房的os及os的安装选择. 任务1:常规windos2003 server的识别及分析阅读 任务2:能说出windos2003server的四个版本及适用环境. 任务3:条件充许的情况下使用虚拟机模拟安装windos2003server 参考资料 《windos 2003 server教程》新世纪高职高专教材编审委员会组编主编刘宝莲《计算机网络教程实训教程》新世纪高职高专教材编审委员会组编主编刘宝莲《计算机技术网络基础教程》第二版电子工业出版社主编严争 二、教学设计: 步骤 教学内容 教学 方法 教学 手段 学生 活动 时间 分配 内容引入 (问题) 以我院网络中心办公系统平台为列引出服务器操作系统 提问法 课件演示 提问 5 分钟

准备 (问题) 为什么服务器不能安装windos xp 操作系统呢” 告知 (教学内容、目的) 告之学生本次课程要学习的主要内容: 1.网络操作系统unix .linux windos实例的历史 2.常规的网络操作系统有哪些?如何选择。 3.Windos server 2003 操作系统的四个版本 讲授法 老师讲学生听 5 分钟 教学目的: 通过本课的讲解使同学们对常规的网络操作系统有了初步的了解,使同学们对os与nosyoule 正确的了解得区分与应用组成.为后期服务器搭建打下了良好的基础. 项目引入 (任务项目) 教学演示: 1.网络操作系统的发展历史 2.网络操作系统的功能 3.网络操作系统安装 讲授法

java对象转换String类型的三种方法

北大青鸟中关村 java对象转换String类型的三种方法在很多情况下我们都需要将一个对象转换为String类型。一般来说有三种方法可以实现:Object.toString()、(String)Object、String.valueOf(Object)。下面对这三种方法一一分析 一、采用Object.toString() toString方法是https://www.wendangku.net/doc/aa10443243.html,ng.Object对象的一个public方法。在java中任何对象都会继承Object 对象,所以一般来说任何对象都可以调用toString这个方法。这是采用该种方法时,常派生类会覆盖Object里的toString()方法。 但是在使用该方法时要注意,必须保证Object不是null值,否则将抛出NullPointerException 异常。 二、采用(String)Object 该方法是一个标准的类型转换的方法,可以将Object转换为String。但是在使用该方法是要注意的是需要转换的类型必须是能够转换为String的,否则会出现CalssCastException异常错误。 代码代码如下: Object o = new Integer(100); String string = (String)o; 这段程序代码会出现https://www.wendangku.net/doc/aa10443243.html,ng.ClassCastException: https://www.wendangku.net/doc/aa10443243.html,ng.Integer cannot be cast to https://www.wendangku.net/doc/aa10443243.html,ng.String。因为将Integer类型强制转换为String类型,无法通过。 三、String.valueOf(Object) 上面我们使用Object.toString()方法时需要担心null问题。但是使用该方法无需担心null值问题。因为在使用String.valueOf(Object)时,它会判断Object是否为空值,如果是,则返回null。下面为String.valueOf(Object)的源码: 代码代码如下: public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); } 从上面我们可以看出两点:一是不需要担心null问题。二是它是以toString()方法为基础的。但是一定要注意:当object为null时,String.valueOf(object)的值是字符串对象:"null",而不是null!!!

网络操作系统重点知识

网络操作系统重点知识 1. ①操作系统的定义:操作系统是控制和管理计算机系统的硬件和软件资源、合理地组织工作流程以及方便用户的程序集合。 ②现代操作系统的基本特征:1、并发性2、共享性3、虚拟性4、不确定性 2. 操作系统在计算机系统中处于何种地位:是硬件层的第一次扩充,是计算机系统软件的重要组成部分。计算机系统的层次结构:硬件层—操作系统层—语言处理程序层—应用程序层。操作系统的作用:提高计算机系统的效率,增强系统的处理能力,充分发挥系统资源的利用率,方便用户使用。 3. 多道程序设计的硬件基础:①中断系统②通道技术③CPU与通道的通信 4. ①多道程序设计的基本原理:多道程序设计的主要目的是充分利用系统中所有资源且尽可能地让它们并行操作。采用通道技术后使CPU从繁琐的I/O操作中解放出来,它不仅能实现CPU与通道并行工作,而且也能实现通道与通道之间、各通道与外设之间的并行。 ②多道程序设计的主要特点:①多道②宏观上并行③微观上串行。 5. 实现多道程序设计要解决的几个问题:①存储保护和地址重定位。(几道程序共享同一主存)②处理机的管理和调度。(共享同一处理机)③资源的管理与分配。(共享系统资源) 9. ①系统调用:用户在程序中能用访管指令调用的,由操作系统提供的子功能集合,其中每一个子功能称为一个系统调用命令。②用户程序使用系统调用后,为什么能从算态进入管态,返回用户程序后又从管态回到算态(系统调用的实现原理):系统调用中的访管指令的地址码可作为系统调用的功能号,它对应一个操作系统为用户提供的子功能或函数。当用户程序需要调用系统功能时,就在其程序的适当位置安排一条系统调用命令,当执行到该指令时便产生访管中断,中断的硬件装置开始响应中断,保存原来的PSW到内存的固定单元,再从内存的另一个固定单元中取出新的PSW送入PSW寄存器。由于新PSW中已事先设置了系统状态为管态,从而使处理机进入管态,在管态下执行中断处理程序。由于在管态下可以使用特权指令,所以用户要求操作系统提供的服务就很容易地被完成。中断处理程序结束后,通过恢复旧的PSW到PSW寄存器,于是又可返回到被中断的用户程序,即从管态又回到算态。 10. UNIX的系统调用的两种方式:①直接系统调用②间接系统调用。它们各是怎样处理:①直接系统调用除可使寄存器传递参数外,其它参数都跟在trap指令的后面②间接系统调用跟随trap指令的是一个指向程序数据区的指针。该程序数据区内有一个直接系统调用trap指令,其后跟以除r0外的参数。 11. ①分时:两个或两个以上的事件按时间划分轮流地使用计算机系统中的某一资源。②分时系统(又称交互作用系统):在一个系统中,如果多个用户通过自己的终端分时地使用同一个计算机,这样的系统就称为分时系统,其上的操作系统统称为分时操作系统。UNIX 属分时系统。 ③分时系统的特点:①同时性(可同时操作,共同使用该系统)②独立性(独占感)③及时性(及时响应)④交互性(人机对话)。 调进/调出是实现分时系统的一种主要方式(分时系统实现原理)。(多流调进调出方式) 12. 实时系统分为两类:①实时控制系统(导弹发射)②实时处理系统(预订飞机票)。 设计实时系统要考虑的问题:①实时时钟管理(实时任务、延迟任务)②连续人机对话③过载的防护(任务的随机性)④高可靠性和保证(故障引起的严重后果)。 13. 分布式计算机系统:是一个由多台计算机组成的系统,在用户看来,他所拥有的计算机是一台单独的计算机,而这台计算机是一台功能扩大了的虚拟机。分布式系统的三个基本功能:①通信②资源共享③并行计算。分布式系统最为突出的特点是透明性。 分布式计算机系统具有以下主要特点: ①任意两台计算机之间可以利用通信交换信息。②各计算机具有相对的自主性或自治性。③具有透明性④具有整体性或协同性。⑤具有坚定性。(任一台故障不会使系统瘫痪。) 14. 分布式系统对资源的管理与集中式系统有何不同? 答:分布式系统对资源的管理采用一类资源有多个管理者的分布式管理方式。分布式管理方式又可分为集中分布管理和完全分布管理两种方式。集中式系统对资源的管理采用一个管理者的方式。 17. 紧耦合与松耦合多处理机系统有何区别? 答:主要区别在于有无共享存储器。①紧耦合多处理机系统有共享存储器,所以也称其为共享存储结构多处理机系统。 ②松耦合处理机系统中没有共享存储器,每台处理机都有一个容量较大的局部存储器,所以也称其为分布存储结构多处理机系统。

java中String类型转换方法

java中String类型转换方法 integer to String : int i = 42; String str = Integer.toString(i); or String str = "" + i double to String : String str = Double.toString(i); long to String : String str = Long.toString(l); float to String : String str = Float.toString(f); String to integer : str = "25"; int i = Integer.valueOf(str).intValue(); or int i = Integer.parseInt(str); String to double : double d = Double.valueOf(str).doubleValue(); String to long : long l = Long.valueOf(str).longValue(); or

long l = Long.parseLong(str); String to float : float f = Float.valueOf(str).floatValue(); decimal to binary : int i = 42; String binstr = Integer.toBinaryString(i); decimal to hexadecimal : int i = 42; String hexstr = Integer.toString(i, 16); or String hexstr = Integer.toHexString(i); hexadecimal (String) to integer : int i = Integer.valueOf("B8DA3", 16).intValue(); or int i = Integer.parseInt("B8DA3", 16); ASCII code to i = 64; String aChar = new Character((char)i).toString(); integer to ASCII code c = 'A'; int i = (int) c; // i will have the value 65 decimal To extract Ascii codes from a test = "ABCD"; for ( int i = 0; i < test.length(); ++i ) { char c = test.charAt( i ); int i = (int) c; System.out.println(i); }

《网络操作系统》习题(DOC)

《网络操作系统》习题 一、填空题 1. Windows Server 2003的标准版本适用于中、小型企业,主要用作服务器,提供各种常见的网络功能,如:文件服务、打印服务、通信服务、Web服务等。 2. 通过查看硬件兼容性列表文件,可以确认Windows Server 2003操作系统是否与一台计算机的硬件设备兼容。 3. 在检测软件兼容性时,需要在winnt32.exe命令后附加的参数为checkupgradeonly 。 4. Windows Server 2003支持的文件系统格式有:FAT、FAT32和NTFS 。 5. 在Windows Server 2003中,NTFS 文件系统格式支持文件加密。 6. 为了能够实现网络通信,管理员需要为计算机上的网卡等网络设备设置TCP/IP参数,包括:IP 地址、子网掩码和默认网关等。 7. 在安装硬件设备时,一般需要同时安装这个设备的驱动程序,该程序一般由硬件设备的开发厂商提供。 8. 对于即插即用的硬件设备,Windows Server 2003能够自动检测并进行安装。 9. 对于非即插即用的硬件设备,只能由用户手工安装。 10. 如果希望重新使用一个被禁用的设备,应该对该设备的执行启用的操作。 11. 在工作组中,每台计算机均把自己的资源信息和安全信息存放在本地的SAM或安全账户管理数据库中。 12. 在工作组中的一台计算机上所创建的用户账户,被称为本地或本机用户账户。 13. 在网络中工作、使用网络资源的人被称为用户。 14. 如果一个员工长时间不工作,那么为安全起见,管理员应该将他的用户帐户禁用。 15. 在一个工作组中,每台Windows计算机的内置管理员或Administrator 帐户能够在本地计算机的SAM数据库中创建并管理本地用户帐户。 16. 在Windows计算机上不能对文件实施共享,而只能对文件夹实施共享。 17. 管理员在对文件夹实施共享之后,必须设置权限,这样才能保证用户访问共享文件夹的安全。 18. 当创建共享文件夹时,如果在它的共享名的后面附加一个

java 字符串常用函数及其用法

java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。 String相关函数 1)substring() 它有两种形式,第一种是:String substring(int startIndex) 第二种是:String substring(int startIndex,int endIndex) 2)concat() 连接两个字符串 例:String s="Welcome to "; String t=s.concat("AnHui"); 3)replace() 替换 它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下: String replace(char original,char replacement) 例如:String s=”Hello”.replace(’l',’w'); 第二种形式是用一个字符序列替换另一个字符序列,形式如下: String replace(CharSequence original,CharSequence replacement) 4)trim() 去掉起始和结尾的空格 5)valueOf() 转换为字符串 6)toLowerCase() 转换为小写 7)toUpperCase() 转换为大写 8)length() 取得字符串的长度 例:char chars[]={’a',’b’.’c'}; String s=new String(chars); int len=s.length(); 9)charAt() 截取一个字符 例:char ch; ch=”abc”.charAt(1); 返回值为’b’ 10)getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart 指定了子串开始字符的下标 sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。

java中String的“==”和equals判断相等性

1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. ne w String()和ne w String(“”)都是申明一个新的空字符串,是空串不是null; 3. String str=”kvill”与String str=ne w String (“kvill”)的区别: 在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。 常量池(consta nt pool)指的是在编译期被确定,并被保存在已编译的.class文件中的 一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。 看例1: String s0=”kvill”; String s1=”kvill”; String s2=”kv”+ “ill”; Syste m.out.println( s0==s1 ); Syste m.out.println( s0==s2 ); 结果为: true

true 首先,我们要知道Java会确保一个字符串常量只有一个拷贝。 因为例子中的s0和s1中的”kvill”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”kv”和”ill”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”kvill”的一个引用。 所以我们得出s0==s1==s2; 用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。 看例2: String s0=”kvill”; String s1=ne w String(”kvill”); String s2=”kv”+ ne w String(“ill”); Syste m.out.println( s0==s1 ); Syste m.out.println( s0==s2 ); Syste m.out.println( s1==s2 );

java中常用的一些方法

java中常用的一些方法 字符串 1、获取字符串的长度 length() 2 、判断字符串的前缀或后缀与已知字符串是否相同 前缀startsWith(String s) 后缀endsWith(String s) 3、比较两个字符串 equals(String s) 4、把字符串转化为相应的数值 int型Integer.parseInt(字符串) long型Long.parseLong(字符串) float型Folat.valueOf(字符串).floatValue() double型Double.valueOf(字符串).doubleValue() 4、将数值转化为字符串 valueOf(数值) 5、字符串检索 indexOf(Srting s) 从头开始检索 indexOf(String s ,int startpoint) 从startpoint处开始检索 如果没有检索到,将返回-1 6、得到字符串的子字符串 substring(int startpoint) 从startpoint处开始获取 substring(int start,int end) 从start到end中间的字符 7、替换字符串中的字符,去掉字符串前后空格 replace(char old,char new) 用new替换old trim() 8、分析字符串 StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符)StringTokenizer(String s,String delim) delim是自己定义的分隔符

nextToken() 逐个获取字符串中的语言符号 boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false countTokens() 得到一共有多少个语言符号 文本框和文本区 1、文本框 TextField() 构造文本框,一个字符长 TextField(int x) 构造文本框,x个字符长 TextField(String s) 构造文本框,显示s setText(String s) 设置文本为s getText() 获取文本 setEchoChar(char c) 设置显示字符为c setEditable(boolean) 设置文本框是否可以被修改 addActionListener() 添加监视器 removeActionListener() 移去监视器 2、文本区 TextArea() 构造文本区 TextArea(String s) 构造文本区,显示s TextArea(String s,int x,int y) 构造文本区,x行,y列,显示s TextArea(int x,int y) 构造文本区,x行,y列 TextArea(String s,int x,ing y,int scrollbar) scrollbar的值是: TextArea.SCROLLBARS_BOTH TextArea.SCROLLBARS_VERTICAL_ONLY TextArea.SCROLLBARS_HORIZONTAL_ONLY TextArea.SCROLLBARS_NONE setText(String s) 设置文本为s

Java API----String类的方法

//===============API的使用步骤=================== 1:打开API帮助手册 2:显示--->索引-->输入要查的API 3:找到你要使用的方法 //---------------------------- 1:导包//https://www.wendangku.net/doc/aa10443243.html,ng.xxx;不需要导包 2:创建类的对象 3:调用方法 //String类: //构造方法 public String(String original) public String(char[] value) public String(char[] value,int offset,int count) //直接赋值也可以是一个对象 //注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。

//String的特点 //通过构造方法创建字符串对象 String s = new String(“hello”); //直接赋值创建字符串对象 String s = “hello”; //区别是什么? //面试题: String str = new String("helloworld"); //创建两个对象,一个在堆中,一个在常量池中String str2 = "helloworld"; //创建一个对象,在常量池中 //常用方法 //判断功能方法 boolean equals(Object obj)//比较字符串的内容是否相同 boolean equalsIgnoreCase(String str)//比较字符串的内容是否相同,忽略大小写boolean startsWith(String str)//判断字符串对象是否以指定的str开头 boolean endsWith(String str)//判断字符串对象是否以指定的str结尾

网络操作系统考试试题库

一、选择题(共30分,每小题1分) 1、在操作系统中存在许多同时的或者并行的活动,这种特征称为(C) A、共享性 B、虚拟性 C、并发性 D、不确定性 2、用于连接磁带、磁鼓和磁盘等快速设备,以成组方式工作的是(D) A、字节多路通道 B、数组多路通道 C、控制器 D、选择通道 3、在静态下运行的操作系统程序中,只能在管态下执行而不能在算态下执行的特殊机器指令是(A) A、特权指令 B、系统调用指令 C、陷阱指令 D、访管指令 4、分时系统中,每个用户都有一种独点感,感到该系统好像为我一个用户在服务,这种特征是(B) A、同时性 B、独立性 C、分时性 D、交互性 5、在紧耦合多处理机系统中,处理机间实现相互通信的机制是(B) A、消息传递机制 B、共享主存 C、环形网络 D、总线网络 6、把操作系统分成若干进程,其中每个进程实现单独的一套服务,这种服务模式是(C) A、对象模式 B、对称多处理机模式 C、客户机/服务器模式 D、对等模式 7、进程从运行态进入就绪态的原因可能是(A)

A、时间片用完 B、被选中占有处理器 C、等待的I/O操作已完成 D、等待I/O操作 8、能够按照变化的情况对各种进程的优先级进行适当地调整,这种进程调度算法是(D) A、静态优先级算法 B、时间片轮转算法 C、先来先服务算法 D、动态优先级算法 9、在具有多线程机制的操作系统中,处理机调度的基本单位是(B) A、进程 B、线程 C、字节 D、块 10、为了加快查表速度,在地址变换机构中加入一组高速寄存器,这些寄存器连同管理它们的硬件构成了一个容量较小的存储器,称为(C) A、主存储器 B、辅助存储器 C、联想存储器 D、Cache 11、进程间的互斥是指进程间在逻辑上的相互关系是(D) A、调用 B、联接 C、直接制约 D、间接制约 12、在基于消息传递通信机制中,其核心成分是(A) A、通信原语 B、函数 C、参数 D、程序 13、根据通信协议来控制和管理进程间的通信的软件是(C) A、网络操作系统 B、网络传输软件 C、网络通信软件 D、网络应用软件 14、以虚拟软盘方式实现硬盘共享的软件必须具有四方面的功能,即盘卷管理、安装管理、信号量管理和(B)

Java中string的相关函数

Java中string的相关函数 字串与字元 文字字串是一个相当基本且经常被使用到的资料型态,然而在Java 中字串不象char、int 与float 一样是个基本资料型态,而是使用https://www.wendangku.net/doc/aa10443243.html,ng.String 类别来加以表示,该类别定义了许多有用的方法来操作字串。String 物件是固定不变的(immutable):一旦一个String 物件被建立了,则没有任何方法可以改变它所代表的文字,因此,每个运作字串的方法会传回一个新的String 物件,而所修正过后的字串便是储存在此新物件里。 以下的程式码展示了你可以对字串所执行的运作: // 建立字串 String s = "Now "; // String 物件有个特殊的写法 String t = s + "is the time. "; // 使用+ 运算子来串连字串 String t1 = s + " " + 23.4; // + 将其它值转换为字串 t1 = String.valueOf( 'c '); // 从字元值获得对应的字串 t1 = String.valueOf(42); // 获得整数或其他任何数值的字串版本 t1 = Object.toString(); // 使用toString() 将物件转换为字串 // 字串长度 int len = t.length(); // 字串中的字元数:16 // 字串中的子字串 String sub = t.substring(4); // 传回从char 4 到最后的子字串:"is the time. " sub = t.substring(4, 6); // 传回chars 4 与5:"is " sub = t.substring(0, 3); // 传回chars 0 到2:"Now " sub = t.substring(x, y); // 传回从位置x 到y-1 间的子字串 int numchars = sub.length(); // 子字串的长度永远是(y-x) // 从一个字串中撷取(extract)出字元 char c = t.charAt(2); // 取得t 的第三个字元:w char[] ca = t.toCharArray(); // 将字串转换为一个字元阵列 t.getChars(0, 3, ca, 1); // 将t 中的前三个字元放到ca[1] 到ca[3] 中 // 大小写转换 String caps = t.toUpperCase(); // 转换为大写 String lower = t.toLowerCase(); // 转换为小写 // 字串比较 boolean b1 = t.equals( "hello "); // 传回flase:两字串并不相等 boolean b2 = t.equalsIgnoreCase(caps); // 忽略大小写的字串比较:true boolean b3 = t.startsWith( "Now "); // 传回true boolean b4 = t.endsWith( "time. "); // 传回true int r1 = https://www.wendangku.net/doc/aa10443243.html,pareTo( "Pow "); // 传回值<0:s 在"Pow "之前 int r2 = https://www.wendangku.net/doc/aa10443243.html,pareTo( "Now "); // 传回值0:两字串相等

Java String类的常用方法

6.2 1 String类的常用方法 程序模板 按模板要求,将【代码1】~【代码9】替换为Java程序代码。 StringExample.java class StringExample { public static void main(String args[ ]) { String s1=new String("you are a student"), s2=new String("how are you"); if (【代码1】) // 判断s1与s2是否相同 { System.out.println("s1与s2相同"); } else { System.out.println("s1与s2不相同"); } String s3=new String("22030219851022024"); if (【代码2】) // 判断s3的前缀是否是“220302” { System.out.println("吉林省的身份证"); } String s4=new String("你"), s5=new String("我"); if(【代码3】) // 按着字典序s4大于s5的表达式 { System.out.println("按字典序s4大于s5"); } else { System.out.println("按字典序s4小于s5"); } int position=0; String path="c:\\java\\jsp\\A.java"; position=【代码5】// 获取path中最后出现目录分隔符号的位置 System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position); String fileName=【代码6】// 获取path中“A.java”子字符串 System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);

网络操作系统复习资料

网络操作系统复习资料 1.操作系统命名、存储以及组织文件结构时所遵循的文件操作方式是文件系统。 2.默认情况下,WEB服务器监听的端口号是80。 3.快速以太网数据传输速率为100 Mb/s。 4.用于在TCP/IP网络中的计算机之间传输文件的协议叫FTP。 5.在域的DC上被创建,并会被自动复制到域中的其他DC上的是域用户账户。 https://www.wendangku.net/doc/aa10443243.html,BIOS来自于BIOS,是提供网络功能的一组基本接口。 7.通过netstat命令可以查看当前计算机的TCP 连接状态。 8.要实现动态IP地址分配,网络中至少需要一台DHCP服务器 9.如果没有特殊申明,匿名FTP服务器登陆帐号通常为anonymou 10.默认情况下,TELNET服务器监听的端口号是23 11.下列Windows 2000 所有磁盘管理类型中,运行速度最快的卷是带区卷 12.如果IP地址为202.102.192.68,子网掩码为255.255.255.0,那么该IP所在的网络地址为202.102.192.0 13.在因特网域名中,.com通常表示商业组织 14.下列哪一项不是创建VPN所采用的技术PKI 15.要启用磁盘配额管理,Windows Server 2003 驱动器必须使用只可使用NTFS文件系统。 16.URL的表示是正确的有:1).https://www.wendangku.net/doc/aa10443243.html, 2).ftp://https://www.wendangku.net/doc/aa10443243.html, 3).https://https://www.wendangku.net/doc/aa10443243.html, 17WWW客户与WWW服务器之间的信息传输使用的协议为HTTP 17.TCP和UDP的一些端口保留给一些特定的应用使用。为HTTP协议保留的端口号为TCP的80端口 18.在Windows 2000中查看IP地址配置情况的命令是ipconfig 19.域名解析的两种主要方式是反复解析和递归解 20.常见的网络操作系统有linux/unix、 Netware和 Windows NT。 21.网络操作系统的功能有处理机管理、存储管理、作业管理、设备管理、进程管理和网络管理。 22.在安装了windows2000 Server后,系统会自动建立两个帐号分别是Administrator和guest。 23. 在OSI参考模型中,TCP是传输上的协议,IP是网络上的协议。 24.在选择安装windows2000 Server的方法时,通常的安装方法有两种,他们分别是全新安装和升级安装。 25.如果某个用户的帐号暂时不使用时,可以将其停用,某个用户帐户不再被使用,或者作为管理员的用户不再希望某个用户账户存在于安全域中,可以将其删除,管理员经常需要将用户和计算机帐户添加到新的组织单位或容器中。

java中String的常用方法

java中String的常用方法 1、length()字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2、charAt()截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3、 getChars()截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制子串的下标值是targetStart。 例:String s="this is a demo of the getChars method."; char buf[]=new char[20]; s.getChars(10,14,buf,0); 4、getBytes()

替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()。 5、toCharArray() 6、equals()和equalsIgnoreCase() 比较两个字符串 7、regionMatches()用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。 boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars) boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars) 8、startsWith()和endsWith()startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束 9、equals()和== equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。 例:String s1="Hello"; String s2=new String(s1);

Java中String的用法总结

构造方法: String() 初始化一个新创建的String 对象,它表示一个空字符序列。 String(byte[] bytes) 构造一个新的String,方法是使用平台的默认字符集解码字节的指定数组。String(byte[] bytes, int offset, int length) 构造一个新的String,方法是使用指定的字符集解码字节的指定子数组。String(byte[] bytes, int offset, int length, String charsetName) 构造一个新的String,方法是使用指定的字符集解码字节的指定子数组。String(byte[] bytes, String charsetName) 构造一个新的String,方法是使用指定的字符集解码指定的字节数组。 String(char[] value) 分配一个新的String,它表示当前字符数组参数中包含的字符序列。 String(char[] value, int offset, int count) 分配一个新的String,它包含来自该字符数组参数的一个子数组的字符。String(int[] codePoints, int offset, int count) 分配一个新的String,它包含该Unicode 代码点数组参数的一个子数组的字符。 String(String original) 初始化一个新创建的String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本。 String(StringBuffer buffer) 分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。String(StringBuilder builder) 分配一个新的字符串,它包含当前包含在字符串生成器参数中的字符序列 方法总结: char charAt(int index) 返回指定索引处的char 值。 int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。 int codePointBefore(int index) 返回指定索引之前的字符(Unicode 代码点)。 int codePointCount(int beginIndex, int endIndex) 返回此String 的指定文本范围中的Unicode 代码点数。 int compareT o(String anotherString) 按字典顺序比较两个字符串(区分大小写)。 int compareT oIgnoreCase(String str) 不考虑大小写,按字典顺序比较两个字符串。 String concat(String str) 将指定字符串联到此字符串的结尾。 boolean contains(CharSequence s) 当且仅当此字符串包含char 值的指定序列时,才返回true。 boolean contentEquals(CharSequence cs) 当且仅当此String 表示与指定序列相同的char 值时,才返回true。

网络操作系统(NOS)

网络操作系统(NOS),是网络的心脏和灵魂,是向网络计算机提供网络通信和网络资源共享功能的操作系统。它是负责管理整个网络资源和方便网络用户的软件的集合。由于网络操作系统是运行在服务器之上的,所以有时我们也把它称之为服务器操作系统。 网络操作系统与运行在工作站上的单用户操作系统(如WINDOWS98等)或多用户操作系统由于提供的服务类型不同而有差别。一般情况下,网络操作系统是以使网络相关特性最佳为目的的。如共享数据文件、软件应用以及共享硬盘、打印机、调制解调器、扫描仪和传真机等。一般计算机的操作系统,如DOS和OS/2等,其目的是让用户与系统及在此操作系统上运行的各种应用之间的交互作用最佳。 目前局域网中主要存在以下几类网络操作系统: 1. Windows类 对于这类操作系统相信用过电脑的人都不会陌生,这是全球最大的软件开发商--Microsoft(微软)公司开发的。微软公司的Windows系统不仅在个人操作系统中占有绝对优势,它在网络操作系统中也是具有非常强劲的力量。这类操作系统配置在整个局域网配置中是最常见的,但由于它对服务器的硬件要求较高,且稳定性能不是很高,所以微软的网络操作系统一般只是用在中低档服务器中,高端服务器通常采用UNIX、LINUX或Solairs等非Windows操作系统。在局域网中,微软的网络操作系统主要有:Windows NT 4.0 Serve、Windows 2000 Server/Advance Server,以及最新的Windows 2003 Server/ Advance Server等,工作站系统可以采用任一Windows或非Windows操作系统,包括个人操作系统,如Windows 9x/ME/XP 等。 在整个Windows网络操作系统中最为成功的还是要算了Windows NT4.0这一套系统,它几乎成为中、小型企业局域网的标准操作系统,一则是它继承了Windows家族统一的界面,使用户学习、使用起来更加容易。再则它的功能也的确比较强大,基本上能满足所有中、小型企业的各项网络求。虽然相比Windows 2000/2003 Server系统来说在功能上要逊色许多,但它对服务器的硬件配置要求要低许多,可以更大程度上满足许多中、小企业的PC服务器配置需求。 2. NetWare类 NetWare操作系统虽然远不如早几年那么风光,在局域网中早已失去了当年雄霸一方的气势,但是NetWare 操作系统仍以对网络硬件的要求较低(工作站只要是286机就可以了)而受到一些设备比较落后的中、小型企业,特别是学校的青睐。人们一时还忘不了它在无盘工作站组建方面的优势,还忘不了它那毫无过份需求的大度。且因为它兼容DOS命令,其应用环境与DOS相似,经过长时间的发展,具有相当丰富的应用软件支持,技术完善、可靠。目前常用的版本有3.11、3.12和4.10 、V4.11,V5.0等中英文版本,NetWare 服务器对无盘站和游戏的支持较好,常用于教学网和游戏厅。目前这种操作系统有市场占有率呈下降趋势,这部分的市场主要被Windows NT/2000和Linux系统瓜分了。 3. Unix系统 目前常用的UNIX系统版本主要有:Unix SUR4.0、HP-UX 11.0,SUN的Solaris8.0等。支持网络文件系统服务,提供数据等应用,功能强大,由AT&T和SCO公司推出。这种网络操作系统稳定和安全性能非常好,但由于它多数是以命令方式来进行操作的,不容易掌握,特别是初级用户。正因如此,小型局域网基本不使用Unix作为网络操作系统,UNIX一般用于大型的网站或大型的企、事业局域网中。UNIX网络操作系统历史悠久,其良好的网络管理功能已为广大网络用户所接受,拥有丰富的应用软件的支持。目前

相关文档
相关文档 最新文档