通过Java字节码发现有趣的内幕之String篇--引用相等性
很多时候我们在编写Java代码时,判断和猜测代码问题时主要是通过运行结果来得到答案,本博文主要是想通过Java字节码的方式来进一步求证我们已知的东西。这里没有对Java字节码知识进行介绍,如果想了解更多的Java字节码或对其感兴趣的朋友可以先阅读字节码基础:JVM字节码初探。String字面量可以通过’==’判断两个字符串是否相同,是因为大家都知道’==’是用来判断两个对象的值引用地址是否一致,两...
shell中将字符串转换成数字
我有一个字符串“96.56”,怎样才能将它转换成一个小数,或者是一个整数96也行。 shell中无需转换,可以直接用作数字。转换成整数:# echo "96.56"| awk '{print int($0)}'96追问那如果我要将“.21”(这是从文件中读出来的,表示0.21)拿来与1比较大小,写在if判断中,我该怎么做?追答shell中的test语句只能用于整数判断,要判断小数用awk吧,awk...
Quartz使用总结
Quartz可以用来做什么?Quartz是一个任务调度框架。比如你遇到这样的问题想每月25号,信用卡自动还款想每年4月1日自己给当年暗恋女神发一封匿名贺卡想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事...
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
1. cat 由第一行开始显示文件内容2. tac 由最后一行开始显示文件内容(刚好和cat字母相反)3. nl 按行号显示文件内容4. more 一页一页翻动的读取5. less 在more基础上增加向前翻页和向前查找6. head 只显示前几行7. tail 只显示后几行8. od 按二进制显示...
动态类型语言和静态类型语言
https://www.cnblogs.com/liuning8023/p/4286044.html 动态类型语言和静态类型语言本文主要说明动态类型语言和静态类型语言。类型检查所进行的检验处理以及实行类型的约束,可发生在编译时期(静态检查)或运行时期(动态检查)。静态类型检查是在编译器所进行语义分析中进行的。如果一个语言强制实行类型规则就称此处理为强类型(或静态类型),反之称为弱类型(或动态类...
Java,哈希码以及equals和==的区别
https://www.cnblogs.com/zyj-bozhou/p/6733309.html 从开始学习Java,哈希码以及equals和==的区别就一直困扰着我。
要想明白equals和==的区别首先应该了解什么是哈希码,因为在jdk的类库中不管是object实现的equals()方法还是String重写的equals()方法以及其它基本数据类型的包装类重写的euqals()方法,...
java中存储机制堆栈
一、java的六种存储地址及解释
1) 寄存器(register):这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。
2) 堆栈(stack):位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持。堆栈指针若向下移动,则分配新的内存;若...
hive安装--设置mysql为远端metastore
作业任务:安装Hive,有条件的同学可考虑用mysql作为元数据库安装(有一定难度,可以获得老师极度赞赏),安装完成后做简单SQL操作测试。将安装过程和最后测试成功的界面抓图提交 . 已有的当前虚拟机: 总共三台虚拟机,使用CentOS。一台是NameNode,另两台为DataNode,由于搭载虚拟机的内存不是很足,所以不打算再新增一台虚拟机来另外安装mysql,所以选择其中一台datanode...
Hadoop分块与分片介绍及分片和分块大小相同的原因
概念介绍分块在HDFS系统中,为了便于文件的管理和备份,引入分块概念(block)。这里的 块 是HDFS存储系统当中的最小单位,HDFS默认定义一个块的大小为64MB。当有文件上传到HDFS上时,若文件大小大于设置的块大小,则该文件会被切分存储为多个块,多个块可以存放在不同的DataNode上,整个过程中 HDFS系统会保证一个块存储在一个datanode上 。但值得注意的是 如果某文件大小没有...
Hadoop框架排序和分组的理解 GroupingComparator
MapReduce框架会确保每一个Reducer的输入都是按Key进行排序的。一般,将排序以及Map的输出传输到Reduce的过程称为混洗(shuffle)。每一个Map都包含一个环形的缓存,默认100M,Map首先将输出写到缓存当中。当缓存的内容达到“阈值”时(阈值默认的大小是缓存的80%),一个后台线程负责将结果写到硬盘,这个过程称为“spill”。Spill过程中,Map仍可以向缓存写入结果...
hadoop groupingComparator 与 secondary sort
https://blog.csdn.net/groovy2007/article/details/44408583《hadoop权威指南》里的例子:有许多气象记录,需要找出每年的最高温度,通过secondary sort实现。(这个任务其实没有必要使用secondary sort,这里只是为了演示)map-reduce的shuffle阶段,只会根据key进行排序,而同一个key的value是无序的...
认识cpu、核与线程
https://www.cnblogs.com/-new/p/7234332.htmlcpu与核心物理核物理核数量=cpu数(机子上装的cpu的数量)*每个cpu的核心数虚拟核所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核模拟两个虚拟核,每个核两个线程,总数为8线程。在操作系统看来是8个核,但是实际上是4个物理核。通过超线程技术可以实现单个物理核实现线程级别的并行计算,但是比不...
C语言编程需要注意的64位和32机器的区别
from:http://blog.163.com/tianle_han/blog/s
一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:
(1)16位平台
char 1个字节8位
short 2个字节16位
int 2个字节16位
long
Linux(一)Linux文件权限
一.Linux文件属性
ls –al:列出所有的文件详细的权限与属性(包括隐藏文件文件名第一个字符为“.”的文件)
1.文件属性
2.权限permission
文件类型:
(1) -
普通文件
(2) d目录文件
(3) p管道文件
(4) l链接文件(软链接硬链接)
(5) c字符设备文件
(6) b块设备文件
(7) s套接字
2.连接(i-n
今日推荐
周排行