随笔分类 -  Java

Java中String字符串常量池
摘要:最近到广州某互联网公司面试,当时面试官问假设有两个字符串String a="abc",String b = "abc";问输出a==b是true还是false。我当时毫不犹豫答了true,然后根据字符串常量池的知识点结合jvm的内存模型讲解,然而他却跟我说是false,说这是最基本的问题。我当时一脸 阅读全文
posted @ 2018-03-19 01:44 monster_101 阅读(18991) 评论(3) 推荐(3)
深入理解Java虚拟机类加载机制
摘要:1.类加载时机 对于类加载的第一个阶段—--加载,虚拟机没有强制的约束,但是对于初始化阶段,虚拟机强制规定有且只有以下的5中情况必须开始初始化,当然,加载、验证、准备阶段在初始化前就已经开始。 ①使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被final修饰静态字段除外)的时候,以及 阅读全文
posted @ 2018-01-31 13:09 monster_101 阅读(432) 评论(0) 推荐(0)
Java单例模式的5种实现方式
摘要:1.饿汉式、不支持并发: 此模式只能运行在单线程下,且类在加载时就已经创建好了实例,不管需不需要用。 2.懒汉式、不支持并发: 此模式只能运行在单线程下,在调用获取实例的方法时才创建实例。 3.懒汉式、支持并发、synchronized: 4.双重检查锁 、volatile(常用): 5.静态私有内 阅读全文
posted @ 2018-01-29 15:47 monster_101 阅读(3272) 评论(3) 推荐(0)
Java基于自定义注解的面向切面的实现
摘要:目的:实现在任何想要切的地方添加一个注解就能实现面向切面编程 自定义注解类 @Target,@Retention都是java的元注解(总共有4个): @Target:设置注解的使用范围,这里设置可以用在参数上和方法上。 @Retention:设置注解的生命周期,这里设置在运行时。 切面类: conc 阅读全文
posted @ 2018-01-28 18:18 monster_101 阅读(8978) 评论(0) 推荐(0)
动态规划本质理解:01背包问题
摘要:题目描述:01背包问题 w:重量 v:价值 cap:承重 1.递归解法:每一个物品都有取和不取两种决策,所以递归的时间复杂度为O(2^n),两种决策所得到的价值分别为:maxValueRe(w, v, cap, n, curCap + w[index], index + 1) +v[index] 和 阅读全文
posted @ 2017-11-11 23:26 monster_101 阅读(3292) 评论(0) 推荐(0)
两个链表间的公共节点
摘要:题目: 输入两个链表,找出它们的第一个公共结点。 链表的形式肯定如下图所示: 暴力解法的时间复杂度为O(mn)显然不是最优的。下面介绍两种解法: 第一种思路:从后面往前数,最后一个相同的结点就是第一个相同的结点。分别把两个链表的所有节点放到两个栈里面,比较弹出栈的元素最后一个相等的节点就是第一个相同 阅读全文
posted @ 2017-11-10 17:23 monster_101 阅读(1520) 评论(0) 推荐(0)
数组中的逆序对
摘要:题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size 阅读全文
posted @ 2017-11-10 16:10 monster_101 阅读(5347) 评论(0) 推荐(0)
2018届春招阿里巴巴实习生招聘内推编程题
摘要:对于一个由一位十进制整数构成的二叉树,如果深度不超过4,可以用一个三位十进制整数构成的数组表示,具体规则如下: 1、百位数表示树的层次L,1<=L<=4;十位数表示在该层次中的位置P,1<=P<=8;个位数表示数值V。 2、数组里,L一定是单增的,也就是说后一个数的L大于等于前一个数的L; 3、对于 阅读全文
posted @ 2017-08-01 17:25 monster_101 阅读(1086) 评论(0) 推荐(0)