JavaSE之Long 详解 Long的方法简介以及用法
|
Long 类在对象中包装了基本类型 long 的值
每个 Long 类型的对象都包含一个 long 类型的字段
|
| static long MAX_VALUE | long 8个字节 最大值2^63-1 十六进制: 0x8000000000000000L |
| static long MIN_VALUE | 最小值-2^63 十六进制: 0x7fffffffffffffffL |
| static int SIZE |
二进制补码形式表示值时的位数
@Native public static final int SIZE = 64; 8个字节就是64位
|
| static Class<Long> TYPE | 表示基本类型 long 的 Class 实例 |
| 构造方法 可以通过long或者String构造 ![]() 字符串参数形式的方法, 内部调用parseLong
|
java.lang.Long.Long(long)
java.lang.Long.Long(String)
|
| 获取指定类型的值 直接返回强转形式 比如:
(byte)value (short)value ......
|
java.lang.Long.byteValue()
java.lang.Long.shortValue()
java.lang.Long.intValue()
java.lang.Long.longValue()
java.lang.Long.floatValue()
java.lang.Long.doubleValue()
|
| 对象常规方法 toString依赖静态方法 static String toString(long i) hashCode 依赖静态方法 hashCode static int hashCode(long value) equals 比较内部值是否相同 ![]() compareTo 依赖静态方法static int compare(long x, long y) |
java.lang.Long.toString()
java.lang.Long.hashCode()
java.lang.Long.equals(Object)
java.lang.Long.compareTo(Long)
|
| 此系列都是获取指定系统属性的long值相关
第一个参数是通过 System.getProperty(java.lang.String) 方法可以访问到的系统属性的名称
以 long 值的形式解释此属性的字符串值,并返回表示此值的 Long 对象
也就是说参数String为一个系统属性的字符串名称
如果指定名称没有属性,或者指定名称为空或 null,抑或属性不具有正确的数字格式时,则返回 null
并不是转换解析字符串为Long,并不是转换解析字符串为Long,并不是转换解析字符串为Long, |
java.lang.Long.getLong(String)
java.lang.Long.getLong(String, long)
java.lang.Long.getLong(String, Long)
|
|
toXXXString就是转换为String形式
具体的XXX是什么就是转换为 什么
toString(long, int)转换为指定进制表示的字符串形式,toString(long)为简化版默认十进制
|
toString(long)
toString(long, int)
|
| toUnsignedString(long, int)转换为指定进制表示的无符号整数的字符串形式 toUnsignedString(long)为简化版默认十进制 |
toUnsignedString(long, int)
toUnsignedString(long)
|
| 以十六进制无符号整数形式返回 long 参数的字符串表示形式 以八进制无符号整数形式返回 long 参数的字符串表示形式 以二进制无符号整数形式返回 long 参数的字符串表示形式 |
toHexString(long)
toOctalString(long)
toBinaryString(long)
|
| parseLong 都是将字符串解析为long, 基本类型! parseLong(String, int)将 string 参数解析为第二个参数指定进制形式的有符号的 long parseLong(String)为简化形式,默认十进制 parseUnsignedLong是parseLong的无符号形式 类似,双参数指定基数进制,单参数默认十进制 使用时需要注意,对应基数(进制)的转换,需要对应的字符,比如十进制你就不能出现十六进制的A |
parseLong(String, int)
parseLong(String)
parseUnsignedLong(String, int)
parseUnsignedLong(String)
|
| valueOf都是将字符串解析为Long, 包装类型 但是,在-128~127之间会使用缓存的值,不在范围内的创建新对象 所以,除非有必要特意创建对象,否则应该使用这个来获取Long对象 valueOf(String, int) 转换指定基数的字符串为Long, valueOf(String)为他的十进制形式 |
valueOf(String, int)
valueOf(String)
valueOf(long)
|
|
hashCode(long) |
| 对于基本类型long的求和 和 大小比较,返回符合条件的long |
sum(long, long)
max(long, long)
min(long, long)
|
![]() 可以直接将指定形式的字符串进行解析 根据字符串的前缀进行自动匹配 然后,返回一个Long |
decode(String) |
比较大小与无符号比较大小![]() 无符号的先转换下,然后调用compare
|
compare(long, long)
compareUnsigned(long, long)
|
| 无符号的商与求余 |
divideUnsigned(long, long)
remainderUnsigned(long, long)
|
| 返回符号 如果指定值为负,则返回值 -1 如果指定值为零,则返回 0 如果指定值为正,则返回 1 |
signum(long) |
|
reverse表示翻转,翻转就是从前往后颠倒过来
逐个比特进行翻转 或者逐个字节(也就是8位为一个单位)进行翻转
看下图就很容易理解
188的二进制 1011 1100
|
reverse(long)
reverseBytes(long)
|
| rotate表示循环移位 循环左移和循环右移 移位负数距离等同于另一个方向的移位 |
rotateLeft(long, int)
rotateRight(long, int)
|
| api解释比较抽象,直白的说就是二进制补码序列中 选择从左边开始数(高位)第一个1 或者从右边开始数(低位)第一个1 其余的位置全都写0 所以,对于highestOneBit 如果是0 返回0 ,因为没有一个1 如果是负数,返回的就是最左边一位是1 其余全都是0 也就是Long的最小值 如果是正数,第一位就是原来的最高位,但是抹掉了所有的零头,就是小于等于这个数的第一个2的N次方 对于highestOneBit 如果是0 返回0 否则返回的将是2的N次方 形如1 ....n个零 |
highestOneBit(long)
lowestOneBit(long)
|
| 与highestOneBit 和 lowestOneBit,本质是互通的,找到了1的位置也就知道了0的个数 知道了0的个数,也就找到了1的位置 返回的是这两个位置的地方,左边和右边的零的个数 |
numberOfLeadingZeros(long)
numberOfTrailingZeros(long)
|
返回二进制补码形式下1的个数
|
bitCount(long) |
| 简言之就是最核心是valueOf(long),在指定范围内他是有缓存的,不在指定范围内,那么将会创建对象 所以,如果可以,尽量不要使用new Long |
| 从valueOf看得出来,带参数的借助的都是parseLong parseLong是返回的long 基本数据类型,valueOf相当于他的装箱形式(当然,valueOf还有使用缓存数据的功能) |
| decode将字符串转换为Long,听起来好像跟valueOf 差不多 都是根据字符串转变为Long对象 但是ValueOf要么指定基数要么就是默认十进制,而且不认识0X.#这种形式 decode不需要指定基数,可以根据字符串的前缀进行自己判断基数,用起来比valueOf更加灵活 |
|
getLong根本就不是看起来的样子
java.lang.Long.getLong(String)
java.lang.Long.getLong(String, long)
java.lang.Long.getLong(String, Long)
他只是valueOf的一个非常小的子集,仅仅是字符串为系统属性的某个变量名时,才是可以用的 ,才是可以解析的
你传入getLong("16"),根本不行
|
JavaSE之Long 详解 Long的方法简介以及用法的更多相关文章
- 【初级】linux rm 命令详解及使用方法实战
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就 ...
- 【初级】linux pwd 命令详解及使用方法实战
pwd:查看当前工作目录 前言: Linux中用 pwd 命令来查看”当前工作目录“的完整路径,就是经常提及的所在目录,多用在生产环境多级目录中查看当前所在路径,使用此命令能给运维人员/操作人员带来很 ...
- 【初级】linux mkdir 命令详解及使用方法实战
mkdir命令详解及使用方法实战 名称 MKDIR 是 make directories 的缩写 使用方法 mkdir [选项(如-p)] ...目录名称(及子目录注意用分隔符隔开)... 如使 ...
- ThinkPHP函数详解:session方法
ThinkPHP函数详解:session方法 Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 sessi ...
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等
页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...
- 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...
- tomcat常用配置详解和优化方法
tomcat常用配置详解和优化方法 参考: http://blog.csdn.net/zj52hm/article/details/51980194 http://blog.csdn.net/wuli ...
- RabbitMQ详解(一)------简介与安装(Docker)
RABBITMQ详解(一)------简介与安装(DOCKER) 刚刚进入实习,在学习过程中没有接触过MQ,RabbitMQ 这个消息中间件,正好公司最近的项目中有用到,学习了解一下. 首先什么是MQ ...
- 官网实例详解-目录和实例简介-keras学习笔记四
官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras 版权声明: ...
随机推荐
- idea设置调用方法时提示方法注释
如图所示:打开file-->setting-->Editor-->General,搜索show,然后勾选上Show quick documentation on mouse move ...
- The SQL Server instance returned an invalid or unsupported protocol version during login negotiatio
在使用.net core 连接sqlserver的时候遇到了这个问题 从字面意思理解大致是个什么版本不支持, 谷歌一下吧,ok,看到这个2000我就知道什么问题了 我的数据库还是2000的,总算把20 ...
- spring事务管理方式,aop
达内12 note unit 09 01 1.spring事务管理 2.spring提供了对事务管理支持 spring采用aop机制完成事务控制 可以实现在不修改原有组件代码情况下实现事务控制功能. ...
- 一、开水白菜(steamed Chinese cabbage in supreme soup)
菜品历史 相传,开水白菜是由颇受慈禧赏识的川菜名厨黄敬临在清宫御膳房创制的. 黄敬临当厨时,不少人贬损川菜"只会麻辣,粗俗土气",为了破谣立证,他冥思苦想多时并经由百番尝试,终于开 ...
- k8s probe
livenessProbe: httpGet: path: /abc/401 port: 8384 scheme: HTTP
- Echarts自定义tootips
由于业务需求,现在要自定义tootips; 设计稿如下: 代码如下: app.title = '坐标轴刻度与标签对齐'; var str1 = "top:-20px;border:0px s ...
- React Native组件、生命周期及属性传值props详解
创建组件的三种方式 第一种:通过ES6的方式创建 /** * 方式一 :ES6 */ export default class HelloComponent extends Component { r ...
- Springboot Selenide UI 自动化测试
标题中的Selenide 并没有拼错,确实不是selenium Selenium做UI自动化,可以参考我其他的blog: Selenium做自动化最好要封装起来,否则对于元素的等待,页面的加载会使得自 ...
- [Swift]LeetCode142. 环形链表 II | Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note ...
- [Swift]LeetCode519. 随机翻转矩阵 | Random Flip Matrix
You are given the number of rows n_rows and number of columns n_cols of a 2D binary matrix where all ...



