首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java IO(1)基础知识——字节与字符

image.png   当然比字节更大的是KB(千字节),1KB = 1024B,再到后面就是MB(兆字节),1MB = 1024KB,GB、TB……   Java中有用于表示字节的数据类型——byte...前面提到1字节等于8个二进制位,那么也就是说1字节能表示的最大数为[0, 255](闭区间),但是,在Java中byte类型是有符号型的,也就是说在它的最高位是符号位。...原码:最高位表示符号位,0表示正数,1表示负数,其余位表示真实数值。前面的错误分析正是将计算机中数值存储定义为了原码,所以才会得到Java中byte型数据类型的取值范围是[-127, 127]。...在Java中使用的就是UNICODE编码,这符合Java跨平台的特性,这也就解释了Java中char字符的数据类型占用的是2个字节,因为Java使用UNICODE编码,而UNICODE是2个字节表示1个字符...这里就着重介绍UNICODE编码,UNICODE编码之所以略占空间,是因为它使用2个字节来表示1个字符。就算是英文也是使用2个字节。而ACSII和ANSI则使用1字节表示英文。

65890
您找到你想要的搜索结果了吗?
是的
没有找到

Java 字节

OutputStream 此抽象类是表示输出字节流的所有类的超类。...输出流接受输出字节并将这些字节发送到某个接收器 FileOutputStream 实现 BufferedOutputStream 缓冲,过设置这种输出流,应用程序就可以将各个字节写入基础输出流中,而不必为每次字节写入调用基础系统...InputStream 此抽象类是表示字节输入流的所有类的超类。 FileInputStream 用于读取诸如图像数据之类的原始字节流,要读取字符流。...BufferedInputStream 读取或跳过流中的各字节时,必要时可根据所包含的输入流再次填充该内部缓冲区,一次填充多个字节1.实现数据的换行?...(); bos.close(); } 7.复制文件下所有的.java文件,并该为.jad文件 把视频名全部重命名 请大家把E:\java目录下所有以java结尾的绝对路径输出控制台

79920

java字节

我们都知道Java字节码是JVM所使用的指令集。java字节码可以分为如下几类: 操作数栈   Java 方法的栈桢分为操作数栈和局部变量区。...这几个指令的操作范围与类型如下表: 指令 类型 范围 iconst int(boolean, byte, char, short) [-1, 5] lconst long 0, 1 fconst float...0, 1,2 dconst double 0, 1 dconst reference null bipush int(boolean, byte, char, short) [-128,127] sipush...Idc加载常量池中的例子 将局部变量区的值加载到操作数栈的指令   Java 虚拟机将局部变量区当成一个数组,依次存放 this 指针(仅非静态方法),所传入的参数,以及字节码中的局部变量。...字节码如下图所示: ? iinc例子 Java 相关指令 new: 后跟目标类,生成该类的未初始化的对象。

1.5K20

Java 字节流操作

java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向输出其内容。C语言中只使用一个File包处理一切文件操作,而在java中却有着60多种流类型,构成了整个流家族。...,当读取到文件的末尾时候返回 -1。...FileInputStream 的内部方法其实和父类InputStream中定义的方法差不多,我们通过一个读文件的实例来演示用法。...三、动态字节数组流           在我们上述的文件读取流中,我们定义 byte[] buffer = new byte[1024];,buffer数组为1024,如果我们将要读取的文件中的内容有...当然我们也可以定义更大的数组容量,但是从内存的使用效率上,这是低效的。我们可以使用动态的字节数组流来提高效率。

1.2K90

Java字节码简介

中,而jvm要运行java代码首先要做的就是加载字节码,也就是.java文件经过编译变成的.class文件。...1.魔数:如图所示,cafebabe就是java字节码的魔术,这个数字是用java之父,詹姆斯高斯林指定的,其含义 就是java的咖啡bean吧。...2.版本号:因为java有不同的版本,所以在java字节码中也有标记。0000 0034两个字节就表示java1.8版本。...(10)附加属性表 字节码的最后一部分,该项存放了在该文件中类或接口所定义属性的基本信息。 这里我们根据上述知识来解释一下示例代码的执行过程。...代码的运行通过操作数栈进行相关的逻辑操作,本地变量表用来定义局部变量和执行结果缓存,代码运行需要的用到的常量则直接从常量池中获取。

87410

Java(io流—字节输入流、字节输出流)

java.io.OutputStream:字节输出流 此抽象类是表示输出字节流的所有类的超类; 定义了一些子类共性的成员方法 void close():关闭此输出流并释放与此流有关的所有系统资源 void...new FileOutputStream("D:\\Java\\java\\abc.txt"); file1.write(100);//利用子类共性的成员方法,上面有 file1.close();//释放资源...); file1.close(); java.io.InputStream:字节输入流 共性方法: void close() :关闭此输入流并释放与该流关联的所有系统资源; abstract int...起到了缓冲作用,存储每次读取到的多个字节,(将数组长度定义为1024或者1024的倍数); 方法的返回值是什么?...每次读取的有效字节个数; 代码: FileInputStream file2=new FileInputStream("D:\\Java\\java\\abc.txt"); int i=0;//先定义一个

70220

1TB字节有多大?

我们都知道,硬盘的储存容量是用字节(Byte)来表示的。1字节是最小的储存单位。...1KB(kilobyte)表示1024个字节1MB表示1024个KB,1GB(gigabyte)表示1024个MB,1TB(terabyte)表示1024个GB。 那么,1TB个字节到底有多大?...1)假定彩色照片是每张300KB的jpeg文件,那么1TB字节一共可以储存大约360万张,相当于一年中你每天储存9800张。...2)假定文本文件每个有1MB大,那么1TB字节一共可以储存大约100万个文本文件,相当于一年中你每天储存2900个文件。...因此,这就意味着,1TB个字节可以放入更多的东西。 现在,让我们换一种更接近现实的方式,看看怎么来利用这1TB个字节1)一个人的一生中,阅读过的所有文字,加起来不会超过几个GB。

2.5K130

Java 字节码操作示例

Java 动态性的两种常见实现方式 (1字节码操作 (2)反射 运行时操作字节码可以让我们实现如下功能: (1)动态生成新的类 (2)动态改变某个类的结构(添加/删除/修改 新的属性/方法...) 优势 (1)比反射开销小,性能高 (2)Javassist 性能高于反射,低于ASM 常见的字节码操作类库 BCEL Byte Code Engineering Library(BCEL...ASM 是一个轻量级 Java 字节码操作框架,直接涉及到 JVM 底层的操作和指令 前两个效率最高,学起来也较难 CGLIB(Code Generation Library) 是一个强大的...Javassist 是一个开源的分析、编辑和创建 Java 字节码的类库。性能较 ASM 差,跟 cglib 差不多,但是使用简单。很多开源框架都在使用它。...这就是我们生成的字节码文件内容。

83810

Java字节码增强探秘

大家好,美美今天给大家推荐一篇Java字节码增强技术的文章,在实际工作中有很多应用场景。 美团点评技术团队平日积累了很多这类技术原理解析和实战类的文章,未来将会选取精华,陆续发布。 1....在Java中一般是用javac命令编译源代码为字节码文件,一个.java文件从编译到运行的示例如图1所示。 ?...图1 Java运行示意图 对于开发人员,了解字节码可以更准确、直观地理解Java语言中更深层次的东西,比如通过字节码,可以很直观地看到Volatile关键字如何在字节码上生效。...图3 JVM规定的字节码结构 (1) 魔数(Magic Number) 所有的.class文件的前四个字节都是魔数,魔数的固定值为:0xCAFEBABE。...图5 前十个字节及含义 常量池数据区:数据区是由(constant_pool_count-1)个cp_info结构组成,一个cp_info结构对应一个常量。

1K20
领券