阳光从树叶细缝中,露出了笑容,温暖了我的美梦

0%

题目描述:
输入一个字符串,按字典序打印出该字符串中字符的所有排列。
例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

阅读全文 »

主要使用redis数据结构的列表,通过lpush和brpop实现

画了一张图

哪些内存需要回收?什么时候回收?如何回收?

程序计数器、 虚拟机栈、 本地方法栈3个区域随线程而生,随线程而灭;
栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。
这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问
题,因为方法结束或者线程结束时,内存自然就跟随着回收了。
Java堆和方法区则不一
样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也
可能不一样,我们只有在程序处于运行期间时才能知道会创建哪些对象,这部分内存的分配
和回收都是动态的,垃圾收集器所关注的是这部分内存。

阅读全文 »

Netty是对nio进行封装的框架,并改善了nio的不足

Netty架构

Netty的模块组件

  • bootstrap: Netty服务端及客户端启动类
  • buffer:缓冲相关,对NIO Buffer做了一些优化、封装
  • channel:处理客户端与服务端之间的连接通道
  • container:连接其他容器的代码,例如Spring
  • handler:实现协议编解码等附加功能,
  • logging:日志
  • util:工具类
阅读全文 »

整理自微信公众号:程序员小灰;链接:什么是CAS机制

原子操作类

首先我们来看一个例子,这个例子在上一篇“什么是volatile关键字”中也出现过:

阅读全文 »

整理自微信公众号:程序员小灰;链接:什么是volatile关键字

Java内存模型

  Java内存模型简称JMM(Java Memory Model),是Java虚拟机所定义的一种抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台下都能达到一致的内存访问效果。
  Java内存模型如下图:

阅读全文 »

异常

程序的异常:Throwable

  • 严重问题:Error 比如说内存溢出。
  • 问题:Exception
    • 编译器问题:不是RuntimeException的异常
    • 运行时问题:RuntimeException
      阅读全文 »