4.java笔记之十六进制转十进制(华为)
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
链接: 牛客网.
这题我不会
解一:
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (sc.hasNext()){ String str=sc.next().substring(2);//截取第3个开始的字符串,0xA,就是A System.out.println(Integer.parseInt(str,16));//将str解读为16进制,并返回10进制的数 } } }
总结:
- Integer.parseInt(String s ,int radix):radix用来表示传进来的值是什么进制的,并返回10进制的 int 类型的结果。
- substring()方法:返回字符串的子字符串。
用法:
public String substring(int beginIndex); public String substring(int beginIndex,int endIndex); beginIndex: 起始索引(包括),索引从0开始。 endIndex: 结束索引(不包括)。 返回值: 子字符串
-
Integer.parseInt(s)的作用就是把字符串s解析成有符号的int基本类型。
Integer.valueOf(s)把字符串s解析成Integer对象类型。
区别 :
①Integer.parseInt(s)多次解析同一个字符串得到的int基本类型数据是相等的,可以直接通过“= =”进行判断是否相等。int是基本类型,不含有equals方法,所以只能用“= =”比较,基本类型用“= =”比较的是两个值的大小。
②Integer.valueOf(s)多次解析相同的一个字符串时,得到的是Integer类型的对象,得到的对象有时是同一个对象,有时是不同的对象,要根据把s字符串解析的整数值的大小进行决定:如果s字符串对应的整数值在 -128 到127之间,则解析出的Integer类型的对象是同一个对象;如果s字符串对应的整数值不在-128~127之间,则解析出的Integer类型的对象不是同一个对象。不管对象是否相等,对象中的value值是相等的。
联系:
Integer.parseInt(s)是把字符串解析成int基本类型,Integer.valueOf(s)是把字符串解析成Integer对象类型,其实int就是Integer解包装,Integer就是int的包装,在jdk8中已经自动实现了自动解包装和自动包装,所以两种方式都能得到想要的整数值。 -
基本类型与包装类(自动拆箱装箱)+java的基本类型,常量,引用类型(string属于引用类型)+类的加载过程+jvm(jre,jdk,java SE(java SDK),java EE,java ME)
链接: https://www.geek-share.com/detail/2710040120.html.(这时就不得不把java虚拟机结构也看看:计数器,本地栈,虚拟机栈,方法区,虚拟机堆) -
==与equals():说说我的理解,对错就不知道,应该没错。其实它们应该比较的都是俩对象的首地址,然后Object类(所有类的父类吧)中有个equals()方法,这个方法就是比较对象地址,但是字符串类(String类)和包装类对equals()这个方法重写(覆盖)标记文本了,使其比较的是两个String类对象的内容(即字符串的内容),对包装类来说是值的大小。总的来说,除了String类对象和包装类对象的equals()方法比较的是内容(值),其他类对象的equals()和= =都是比较的地址。另外,那8个基本类型不是类,没有方法,也就只有= =来比较值。还有StringBuffer,StringBuilder类这玩意不属于String类,它里面没有重写equals()方法,也就比的是对象地址。
-
String类:不可变类,对象中的字符序列不可变动。但表面上看起来却变了。这就牵扯到字符串常量,字符串对象和引用变量分别放在jvm的哪块,以及指向位置(java指针就是引用变量类型),比较麻烦,以后再来记录一下。
StringBuffer类:序列可变类,它有改变字符序列的多个方法,append,insert,reverse啥的。加了Synchronized关键字(同步锁),所以一个时间只能有一个线程占有,线程安全。
StringBuilder类:序列可变类,方法与上面那个基本相同,不过它是非线程安全,所以高效些。 -
重载与重写(覆盖):重载是同一个类中多个方法名相同,但这几个方法参数个数,类型不同,也因此来判断载入哪个方法。重写是派生类对基类的一个方法的实现体重建,方法名和参数都没变。重载对返回类型无要求,重写就麻烦了。
详见链接: https://blog.csdn.net/wintershii/article/details/80558739. -
线程,进程与程序区别.
-
Synchronized关键字
越解释越多了,hahaha。。。今天先到这
- 点赞 1
- 收藏
- 分享
- 文章举报
- Android(java)学习笔记188:关于构造代码块,构造函数的一道面试题(华为面试题)
- Java中文处理学习笔记——Hello Unicode
- 兔八哥笔记1:java初学者笔记
- 【学习笔记】Thinking in java (第三版)第六章 Reusing Classes(复用类)
- Java学习笔记-准备阶段
- java对象序列化学习笔记(z)
- Java软件开发学习笔记(一)
- Java入门笔记5_异常(转)
- SAX之Java实现学习笔记(一)
- 我的Thinking in Java学习笔记(四)
- java 学习笔记
- java 学习笔记
- 【学习笔记】Thinking in java (第三版)第七章 多态性(Polymorphism)
- Java入门笔记7_Stream
- Java入门笔记6_线程 (转)
- Java初学笔记:安装和设置JDK
- SAX之Java实现学习笔记(二)
- Java学习笔记001
- 我的Thinking in Java学习笔记(五)
- 我的Thinking in Java学习笔记(七) (zt)