1、执行hive,进入hive窗口
2、执行show databases,查看所有的database;
3、执行use origin_ennenergy_onecard; 则使用origin_ennenergy_onecard数据库
4、执行show create table M_BD_T_GAS_ORDER_INFO_H;则可以查看table在hdfs上的存储路径
1、执行hive,进入hive窗口
2、执行show databases,查看所有的database;
3、执行use origin_ennenergy_onecard; 则使用origin_ennenergy_onecard数据库
4、执行show create table M_BD_T_GAS_ORDER_INFO_H;则可以查看table在hdfs上的存储路径
SpringBoot做文件上传时出现了The field file exceeds its maximum permitted size of 1048576 bytes.错误,显示文件的大小超出了允许的范围。查看了官方文档,原来Spring Boot工程嵌入的tomcat限制了请求的文件大小,这一点在Spring Boot的官方文档中有说明,原文如下
65.5 Handling Multipart File Uploads
Spring Boot embraces the Servlet 3 javax.servlet.http.Part API to support uploading files. By default Spring Boot configures Spring MVC with a maximum file of 1Mb per file and a maximum of 10Mb of file data in a single request. You may override these values, as well as the location to which intermediate data is stored (e.g., to the /tmp directory) and the threshold past which data is flushed to disk by using the properties exposed in the MultipartProperties class. If you want to specify that files be unlimited, for example, set the multipart.maxFileSize property to -1.The multipart support is helpful when you want to receive multipart encoded file data as a @RequestParam-annotated parameter of type MultipartFile in a Spring MVC controller handler method.
文档说明表示,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
需要设置以下两个参数1
2multipart.maxFileSize
multipart.maxRequestSize
Spring Boot 1.3.x或者之前1
2multipart.maxFileSize=100Mb
multipart.maxRequestSize=1000Mb
Spring Boot 1.4.x或者之后1
2spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=1000Mb
很多人设置了multipart.maxFileSize但是不起作用,是因为1.4版本以上的配置改了,详见官方文档:spring boot 1.4
某次在出租车上和朋友聊起一个过去的同学。他和我关系关系一般,和朋友关系较好。聊着聊着,朋友告诉我,他死了。我愣了两秒钟。
第一次听见同龄人的死讯,心底一阵凉意。谈不上难过,或许在难过抵达之前,情绪更多地被讶异包围着。
以前总听老人家抱怨:这人好端端地,怎么走了。那时候听这句话没什么感觉。现在同样的事发生在同龄人身上,感触才深。
静态内部类就是个独立的类。之所以要弄这么个东西,只是起到一个注释的效果,而且这个注释可静态检查。
比如有A,B两个类,B有点特殊,虽然可以独立存在,但只被A使用。这时候怎么办?如果把B并入A里,复杂度提高,搞得A违反单一职责。如果B独立,又可能被其他类(比如同一个包下的C)依赖,不符合设计的本意。所以不如将其变成A.B,等于添加个注释,告诉其他类别使用B了,它只跟A玩。非静态的才是真正的内部类,对其外部类有个引用。
open jdk 和 oracle jdk源代码基本是一样的。
open jdk 1.7 souce code
什么时候会使用HashMap?他有什么特点?
存储键值对时要用到。它是基于Map接口的实现,接受null类型的键值对,是非同步的,HashMap存储着Entry(hash, key, value, next)对象。
你知道HashMap的工作原理吗?
使用hash,通过put和get存储和获取对象。存储对象时,我们将K/V传给put方法时,它调用hashCode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量(超过Load Facotr则resize为原来的2倍)。获取对象时,我们将K传给get,它调用hashCode计算hash从而得到bucket位置,并进一步调用equals()方法确定键值对。如果发生碰撞的时候,Hashmap通过链表将产生碰撞冲突的元素组织起来,在Java 8中,如果一个bucket中碰撞冲突的元素超过某个限制(默认是8),则使用红黑树来替换链表,从而提高速度。
你知道get和put的原理吗?equals()和hashCode()的都有什么作用?
通过对key调用hashCode()方法进行hashing,并计算下标( n-1 & hash),从而获得buckets的位置。如果产生碰撞,则利用key.equals()方法去链表或树中去查找对应的节点
你知道hash的实现吗?为什么要这样实现?
在Java 1.8的实现中,是通过hashCode()的高16位异或低16位实现的:(h = k.hashCode()) ^ (h >>> 16),主要是从速度、功效、质量来考虑的,这么做可以在bucket的n比较小的时候,也能保证考虑到高低bit都参与到hash的计算中,同时不会有太大的开销。
如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?
如果超过了负载因子(默认0.75),则会resize一个原来长度两倍的HashMap,并且重新调用hash方法。
允许使用 null 值和 null 键。
map.entrySet().iterator()比map.keySet().iterator()效率高