JAVA

作者: 大大大大大大大熊 | 来源:发表于2018-09-20 17:42 被阅读0次

配置文件

  • yaml
  • properties
CompositeConfiguration conf = new CompositeConfiguration();
conf.addConfiguration(new PropertiesConfiguration("SWC.properties"));
String ts = conf.getString("spark.name");

序列化Serializable

  1. 对象序列化的定义:将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象。这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象,对其序列化,然后通过网络发给一台Unix机器,然后在那里准确无误地重新"装配"。像RMI、Socket、JMS、EJB它们中的一种,彼此为什么能够传递Java对象,当然都是对象序列化机制的功劳。
  2. 实现序列化的类必须实现Serializable接口。序列化时,类的所有数据成员应可序列化除了声明为transient或static的成员.

Hashmap

get后,通过函数修改了类里面的东西,那么这个value也就修改了。


image.png

字符间加入符号

public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("s1");
        list.add("s3");
        list.add("s5");
        list.add("s7");
        System.out.println(String.join(",", list));
    }
//结果:s1,s3,s5,s7

代码规范

常量

全局常量和类内常量采用字母全部大写、单词之间加下画线,局部常量采用小驼峰形式

数据结构

  • List集合
    常用的时ArryList好LinkedList两个集合类。
    1. ArraList是使用数组进行存储。扩容的时候是把数据复制到新数组中。特点:随机访问快速,但是插入和删除速度很慢,因为可能移动其他元素。
    2. LinkedList的本质是双向链表。特点:插入和删除的速度快,但是随机访问慢。
  • Queue集合
    先进先出的数据结构FIFO的特性,经常作为Buffer(数据缓冲区)使用。
  • Map集合
    1. HashTable因为性能瓶颈被淘汰。
    2. HashMap应用广泛,线程不安全。
    3. ConcurrentHashMap是线程安全的,JDK8中进行了锁的大幅度优化,在多线程并发场景中,优先推荐使用ConcurrentHashMap.
    4. TreeMap是Key有序的Map类集合。
  • Set集合
    Set是不允许出现重复元素的集合类型。
    1. HashSet使用HashMap实现的,只是Value固定为一个静态对象,使用Key保证集合元素的唯一性。但是不保证集合的顺序。
    2. TreeSet使用TreeMap实现的,底层是树结构,保证了集合的有序。
    3. LinkedHashSet继承自HashSet,内部使用链表维护了元素的插入顺序。

集合初始化

ArrayList使用无参数构造的时候,默认大小为10,如果放入1000个元素,那么需要扩容13次才完成存储,但是如果初始化的时候指定了容量New ArrayList(1000)的话,初始化的时候就会直接分配1000个存储空间,从而避免了被动扩容和数组复制的额外开销。注意,如果这个值很大,而且没有初始化复制,那么会造成很大的额外性能损耗,甚至导致OOM的风险。

默认初始值:ArrayList的是10,HashMap的是16

maven编译报错

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.4:single (make-assembly) on project flink_WC: Failed to create assembly: Error creating assembly archive jar-with-dependencies: IOException when zipping org/apache/flink/streaming/connectors/fs/Clock.class: invalid LOC header (bad signature) -> [Help 1]
问题:对应的依赖没下载好,去仓库里删除重新下
解决:删除仓库中的残余,重新下载。

Comparator的理解

 // 按照点击量从大到小排序
    allItems.sort(new Comparator<ItemViewCount>() {
      @Override
      public int compare(ItemViewCount o1, ItemViewCount o2) {
        return (int) (o2.viewCount - o1.viewCount);
      }
    });

总结:compare的比较结果如果返回1的话,那么表示要交换位置。如上述代码,o2.viewCount - o1.viewCount如果是1的话,表示o2比较大,那么o2要和o1交换位置,从大到小。

Json的使用

链接:https://www.cnblogs.com/geek1116/p/7413619.html

多线程

一个进程里面可以有多个线程,每个线程最多使用完一个核的CPU

相关文章

  • Java(JavaEE)学习线路图1

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • Java学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习教程

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

  • java编程分类

    一、java简介java开发环境配置java基础语法java对象与类java基本数据类型java变量类型java修...

  • Java-01初识Java

    Java的3大版本 Java有三大版本,Java SE, Java ME, Java EE Java SE(Jav...

  • JAVA循环语句(四)9.29

    Java条件 if Java条件if...else Java条件多重if Java条件语句 嵌套if Java条件...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:JAVA

      本文链接:https://www.haomeiwen.com/subject/tmfiwftx.html