JAVA解惑中的一个问题

问题描述

System.out.println((int)(char)(byte)-1);//65535System.out.println((int)(char)((byte)-1&0xff));//255前一个我知道,是byte转换成char时,负数前八位要补1,char转换成其他长类型时,前面补0,所以结果是65535,但是后面那个&0xff有什么作用呢?

解决方案

将一个整型和0xFF进行&操作,代表将整数的前24为清0,只保留后8位不变。(byte)-1&0xff这里面包含几个操作首先是将int型的字面量-1强转成byte,截取后面8位。结果还是一个byte类型的-1然后将byte类型的-1提升为int,变成了int型的-1对-1和0xFF&操作,-1(11111111 11111111 11111111 11111111)前24位清0变成(00000000 00000000 00000000 11111111),就是255
解决方案二:
&:逻辑运算符,表示与1&0 = 0;1&1 = 1;0xff的二进制表示为1111 1111,如果要写成超过8位,前面添加0;所以结果就是0xff,也就是255
解决方案三:
这是第二个问题了吧……都n多人回复过你了http://www.iteye.com/problems/69580

时间: 2024-11-08 18:22:24

JAVA解惑中的一个问题的相关文章

转:java.util中的Date类

java.util中的Date类 www.linuxaid.com.cn 01-09-20 23:03 496p 处处--------------------------------------------------------------------------------     在JSP中,我们经常要处理有关日期和时间的信息,这时候你可以使用java.util中的Date类,在编写Java源程序时,情况很明显,你必须通过"import java.util.*"引入java.ut

android-从一个类中设置一个 xml

问题描述 从一个类中设置一个 xml 我想从java类中创建一个xml文件,如何以编程的方式设置xml中的 scaleType到fitXY? 意思就是从另一个类中,而不是在xml文件中. 我用的下面的代码,如何实现呢? image.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 解决方案 image.setScaleType(ImageView.ScaleType.FIT

Java反射库中的安全漏洞在30个月后终于修复了(转)

2013年7月,安全组织Security Explorations发现了Java 7u25中的一个安全漏洞,通过这个漏洞攻击者可以完全摆脱Java沙箱.Oracle在更新的7u40中包含了一个补丁,但是据Security Explorations 在今年早些时候声称,这个补丁仅仅在理念上对其进行了修正,对代码稍加修改之后,依然可以利用这个漏洞.另外,随后的研究表明这个漏洞甚至比最初报道的更加严重.在这个问题公开之后,Oracle发布了一个补丁,作为8u77的一部分. 这个漏洞可以在新的反射库中找

深入解析Java编程中面向字节流的一些应用_java

文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例]通过程序创建一个文件,从键盘输入字符,当遇到字符"#"时结束,在屏幕上显示该文件的所有内容 import java.io.*; class ep10_5{ public static void main(String args[]){ char ch; int data; try{ FileInputStream a=new FileI

Java反射库中的安全漏洞修复

安全组织Security Explorations发现了Java 7u25中的一个安全漏洞,通过这个漏洞攻击者可以完全摆脱Java沙箱.Oracle在更新的7u40中包含了一个补丁,但是据Security Explorations 在今年早些时候声称,这个补丁仅仅在理念上对其进行了修正,对代码稍加修改之后,依然可以利用这个漏洞.另外,随后的研究表明这个漏洞甚至比最初报道的更加严重.在这个问题公开之后,Oracle发布了一个补丁,作为8u77的一部分. 这个漏洞可以在新的反射库中找到,该库从Jav

Java开发中异常处理的最佳实践

异常处理是Java 开发中的一个重要部分.它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中.Java 编程语言也允许你创建新的异常,并通过使用 throw 和 throws关键字抛出它们.事实上,在Java编程中,Java的异常处理不单单是知道语法这么简单,它必须遵循标准的JDK库,和几个处理错误和异常的开源代码.这里我们将讨论一些关于异常处

Java 解惑: 你能通过改变一个单词来解决这个bug吗?

作为<Java解惑>这本书的脑残粉,我们一直想要寻找新的java谜题以满足我们的好奇心.但是很长时间以来,我们并没有搜集到比较满意的题目,所以为了向书中那些谜题致敬,我们决定自己造一个.解谜的好处就像书中所说的"一旦你解决了这些谜题,那些曾经愚弄过最具经验的Java程序员的隐晦且有违直觉的语言行为,将再也无法把你骗过",除此之外,解谜过程所带给我们的快乐也是难以比拟的.为了增加解谜的乐趣,我们决定从能完美解决问题的获胜者中挑选出一位,奖励其250美元的Amazon礼品卡.赶

书籍中的一个小样章-Java并发编程AQS原理浅析

AQS的全称为(AbstractQueuedSynchronizer),这个类也是在java.util.concurrent.locks下面.这个类似乎很不容易看懂,因为它仅仅是提供了一系列公共的方法,让子类来调用.那么要理解意思,就得从子类下手,反过来看才容易看懂.如下图所示: 图 5-15 AQS的子类实现 这么多类,我们看那一个?刚刚提到过锁(Lock),我们就从锁开始吧.这里就先以ReentrantLock排它锁为例开始展开讲解如何利用AQS的,然后再简单介绍读写锁的要点(读写锁本身的实

Java Socket编程中的一个秘密类

编程 介绍 Java平台在java.net包里来实现Socket.在这本文中,我们将使用Java.net包中的下面三个类来工作: ·URLConnection ·Socket ·ServerSocket 在java.net包里包含有更多的类,但是这些是你最经常遇见的,让我们从URLConnection开始,这个类提供了在你的java代码里使用Socket的方法而无需了解Socket的底层机制. 甚至不用尝试就可以使用sockets 连接到一个URL包括以下几个步骤: ·创建一个URLConnec