Java细节问题总结

这篇博客是用来记录自己在写代码的过程中遇到的一些问题,以及解决方法,做一个总结,并且会一直更新,算是笔记吧。

1.问题描述:

在byte类型中,为什么0x4a不需要强转类型,而0xc2而必须进行强转,写成(byte) 0xc2

分析解答:

其实在byte类型的强转中远不是一个0xc2。我们要知道byte的最小值是-128,最大值是127。也就是说byte的数值大于0x7f就会溢出,这时就需要对其进行强转。

另一篇总结性博客:Android细节问题总结

时间: 2024-11-05 16:06:20

Java细节问题总结的相关文章

java细节,你注意到了多少?

Java作为一门优秀的面向对象的程序设计语言,正在被越来越多的人使用.在实际开发中碰到的一些Java语言的容易被人忽视的细节,下面分享一下希望能给正在学习Java语言的人有所帮助. 1,位移运算越界怎么处理 考察下面的代码输出结果是多少? int a=5; System.out.println(a<<33); 按照常理推测,把a左移33位应该将a的所有有效位都移出去了,那剩下的都是零啊,所以输出结果应该是0才对啊,可是执行后发现输出结果是10,为什么呢?因为Java语言对位移运算作了优化处理,

每日一记--java细节之问01

现在越来越觉得java基础细节的重要性了,这样才有交流的价值. 1.静态变量与非静态变量的区别? ①分配的空间: 静态变量存在于虚拟机的方法区中,并且只有一份这样的内存空间. 非静态变量需要通过new出类实例才能够存在,且分配于堆内存空间中,每new出一份类实例便存在一份变量. ②使用的方法上: 静态变量的使用可以通过类名.变量进行调用. 非静态变量需要先创建类实例,然后通过类实例.变量进行调用. ③生命周期 静态变量的生命周期伴随程序的整个阶段. 非静态变量的生命周期伴随着类实例存在的生命周期

java细节

1. super() 与 this() 的区别? This():当前类的对象,super 父类对象. Super():在子类访问父类的成员和行为,必须受类继承规则的约束 而 this 他代表当前对象,当然所有的资源都可以访问. 在构造函数中,如果第一行没有写super(),编译器会自动插入. 但是如果父类没有不带参数 的构造函数,或这个函数被私有化了(用 private 修饰).此时你必须加入对父类的实例化构 造. 而 this 就没有这个要求,因为它本身就进行实例化的构造. 而在方法中 sup

Java细节1

1 import java.util.Scanner; 2 3 public class Demo01 { 4 public static void main(String[] args) { 5 Scanner sc=new Scanner(System.in);//创建一个扫描器对象,用于接收键盘数据 6 System.out.println("使用next方式接收:"); 7 if(scanner.hasNext()){//判断用户有没有输入字符串,hasNextLine输入字符

java细节笔记(9月16)

1.泛型仅仅是java的语法糖,它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的. 2.实现GBK编码字节流到UTF-8编码字节流的转换: 操作步骤就是先解码再编码 用new String(src,"GBK")解码得到字符串 用getBytes("UTF-8")得到UTF8编码字节数组 3.正确计算42度(角度)的余弦值 double d=Math.cos(Ma

java细节问题

保留两位小数:1.234, 1.23, 1.2, 1.0, 1. package test; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class test { public static float test(float f){ String str=String.valueOf(f); float result = 0f; if(str.

Java细节整理——数组与内存控制

重点:使用Java数组之前,必须对数组对象进行初始化. 当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组的初始化完成.程序以后将不能重新改变数组对象在内存中的位置和大小. 知识点整理: 1.数组的初始化有以下两种方式: 1)静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组的长度. 2)动态初始化:初始化时程序员只指定数组的长度,由系统为数组元素分配初始值. 不管使用哪种方式初始化Java数组,一旦初始化完成,该数组的长度就不可改变. 代码示例: publi

java细节篇(==和equals的区别)

1)当==两边是对象时(String,Integer...),两边比的都是地址2)当==两边是基本类型时(int,float),两边比的都是值3)默认equals比的是对象的地址,但是重写的话可以改变成比较值,String和Integer的equals就是重写过的 废话少说,Run!!! package test; public class Test { public static void main(String[] args) { System.out.println("##########

Java提高篇(三六)-----java集合细节(二):asList的缺陷

在实际开发过程中我们经常使用asList讲数组转换为List,这个方法使用起来非常方便,但是asList方法存在几个缺陷: 一.避免使用基本数据类型数组转换为列表 使用8个基本类型数组转换为列表时会存在一个比较有味的缺陷.先看如下程序: public static void main(String[] args) { int[] ints = {1,2,3,4,5}; List list = Arrays.asList(ints); System.out.println("list'size:&