关闭

[置顶] Java8新特性

1. 函数式接口函数式接口表示接口中仅仅只有一个抽象方法,可以用@FunctionalInterface注解来保证接口符合要求。Java里内置了多种常用的函数式接口 Consumer // 参数类型:T, 返回类型:void // 举例:s -> System.out.println(s) // 内部实现 @FunctionalInterface public interface Consum...
阅读(220) 评论(0)

[置顶] Java8 时间处理

1. 时间日期概述Java8引入了一套全新的时间日期API,关于这个新的时间日期库的最大优点在于它清楚地定义了时间日期相关的一些概念,比如说,时间戳(Instant),持续时间(Duration),时区(ZoneId)等。java.time包中的类是不可变且线程安全的。下面是一些关键的类: Instant,该类代表具体的时刻 LocalDate,该类代表日期,例如2014-09-08 LocalTi...
阅读(329) 评论(0)

[置顶] 类加载机制

类加载机制1. 类的加载类加载是指将类的class文件读入内存,并为之创建一个java.lang.Class对象。2. 类的连接类连接分为三个阶段: 1. 验证:用于检验被加载的类是否具有正确的内部结构 2. 准备:负责为类的类变量分配内存,并设置默认初始值 3. 解析:将类的二进制数据中的符号引用替换为直接引用3. 类的初始化 主要是对类变量进行初始化 类初始化的时机(6种) 创建类的实例...
阅读(194) 评论(0)

[置顶] Java基础之面试整理

1. ThreadLocalThreadLocal为解决多线程程序的并发问题提供了一种新的思路。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,目标变量就像是线程的本地变量,这也是类名中“Local”所要表达的意思。Thread里的方法 void set(...
阅读(214) 评论(0)

[置顶] 基础知识

1. 红黑树红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。二叉查找树,是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树。 没有键值相等的节点(no duplicate nodes)。...
阅读(189) 评论(0)

[置顶] 链表排序算法总结

1. 选择排序typedef struct Node { int data; struct Node* next; } Node; typedef struct Node* LinkList; /* 定义LinkList */ LinkList selectSort(LinkList head) { LinkList p,q,small; in...
阅读(515) 评论(0)

[置顶] 链表问题

1. 在O(1)时间删除链表节点// todo 主要思想: “狸猫换太子”, 即用下一个节点的数据覆盖删除节点的数据,然后删除下一个节点。2. 单链表的转置//todo 添加一个dummy节点,统一化操作 pre = dummy ; first = pre.next ; second = first.next; first.next = second.next; second.next =...
阅读(235) 评论(0)

[置顶] 排序算法总结

1. 冒泡排序思想冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。代码void bubbleSort(int arr[], int len) {...
阅读(283) 评论(0)

[置顶] Java面试题整理

1. String类为什么是final的 答:主要是为了效率和安全,如果String允许被继承,由于它的高度使用率,可能会降低程序的性能和增加程序的bug;作为HashMap之类集合的key时,mutable的String会有非常大的危险;线程安全;确保它们不会再被子类改变语义。 //如果不是final,会被子类改变语义 public static String upperString(Stri...
阅读(228) 评论(0)

[置顶] Java错误笔记

1. ConcurrentModification Exception异常分析调用list.remove()方法导致modCount和expectedModCount的值不一致。 注意,像使用for-each进行迭代实际上也会出现这种问题。 下面是分析的过程: Collection songs = new ArrayList<>(); songs.a...
阅读(189) 评论(0)

[置顶] Log4j2使用教程

1 下载进入官网下载Log4j的jar文件:http://logging.apache.org/log4j/2.x/download.html 如图: 然后将log4j-1.2-api-2.5.jar 和log4j-1.2-core-2.5.jar文件配置classpath中2 使用log4j定义了8个级别的log,优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、D...
阅读(474) 评论(0)

Matlab入门

1. 基础知识1) 一些常用命令who: 显示在命令窗口中已经定义的命令(仅显示变量的名称) whos: 显示在命令窗口中已经定义的命令(显示变量的更多信息) clear: 清除所有变量,这些变量将不再存在 clear 变量名: 清除指定的变量 format: 在Matlab中,default表示数字小数部分占4位, format short 占4位,format long 占15位 .....
阅读(227) 评论(0)

网易内推总结

1. 斐波那契数列Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X...
阅读(216) 评论(0)

FastJson Jackson Gson使用教程

1. GsonGson是非常强大的API,它支持Java泛型,支持现成的JSON与Java对象的转换,只要对象的成员名称与JSON中的一致即可。如果针对Java bean和JSON要使用不同的名称,那么可以使用@SerializedName注解来映射JSON和Java类中的变量。 Gson是主类,它暴露出fromJson()和toJson()方法进行转换工作,对于默认实现,可以直接创建对象,也可以...
阅读(332) 评论(0)

Spring SpringMVC Mybatis项目总结

1. Spring Data RedisRedis是用一个基于内存的Key-Value数据库,而Jedis是Redis官方推出的面向Java的Client,提供了很多接口和方法,可以让Java操作使用Redis,而Spring Data Redis是对Jedis进行了封装,集成了Jedis的一些命令和方法,可以与Spring整合。在后面的配置文件(spring-context.xml)中可以看到,S...
阅读(251) 评论(0)

ProtoStuff序列化工具

1. 序列化传输项目中http通信离不开对象的序列化和反序列化,通过序列化技术,可以跨语言实现数据的传输,例如把一个对象序列化后的二进制数据、xml格式数据存放在文件中,下次通过读取文件,然后反序列化一下即可重新生成该对象,抑或通过网络把序列化后的数据传输到另一个终端,对方通过反序列化后也可以重新复制出一个大概相同的对象出来。在一般项目中,xml是一个不错的选择,例如微信公众平台的大多数接口,就是使...
阅读(465) 评论(0)

Linux常用命令

1. grepLinux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功...
阅读(92) 评论(0)

Lombok消除冗长的Java代码

1. 简介Lombok提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,即利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。代码越少,意味着出bug的可能性越低。 参考博客:https://projectlombok.org/features/index.html2. 使用首先要安装Lombok插件,然后导入...
阅读(215) 评论(0)

Apache Commons工具使用

1. 简介Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。2. Commons-Lang1) 重写Object中的方法一个合格的类应该重写toString,hashCode,equals,compareTo方法,我们来看一下apache如何带我们简化这些操作,通过逐个参数添加从而精细控制那些参数参与比较和输出public class User imp...
阅读(242) 评论(0)

Java操作Redis

1. 简介Redis 是一个开源(BSD许可)的,内存中的key-value存储系统,它可以用作数据库、缓存和消息中间件。2. 对key的操作首先要建立连接Jedis jedis = new Jedis("127.0.0.1", 6379),然后就可以对string,set,zset,hash进行操作了。//对key的测试 public void keyTest() { System.out....
阅读(272) 评论(0)

Maven简介

MavenMaven是一个项目管理和构建自动化工具,它采用一种“约定优于配置(Convention Over Configuration)”的策略来管理项目。Maven可以把源代码构建成可发布的项目(编译,打包,测试,发布)。 Maven的安装过程参考:http://blog.csdn.net/kenhins/article/details/13298015 安装好后,我们首先看下mvn的命令格...
阅读(97) 评论(0)

访问者模式(Visitor)

1. 模式的定义扩展客户管理的功能。在不改变客户对象结构中各元素类的前提下,为这些类定义新的功能?访问者模式的定义: 表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作2. UML图Visitor:访问者接口,为所有的访问者对象声明一个visit方法,用来代表为对象结构添加的功能ConcreteVisitor:具体的访问者实现对象,实现真正被添...
阅读(547) 评论(0)

状态模式(State)

1. 模式的定义考虑一个在线投票的应用。状态模式的定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。2. UML图Context:上下文,通常用来定义客户感兴趣的接口,同时维护一个来具体处理当前状态的实例对象State:状态接口,用来封装与上下文的一个特定状态所对应的行为ConcreteState:具体实现状态处理的类,每个类实现一个跟上下文相关的状态的具体处理代码:/*...
阅读(510) 评论(0)

面向对象基础

1. UML简介UML是一种标准的图形化建模语言,是面向对象分析与设计的一种标准表示1)类图类图是用来描述类以及类与类之间关系的一种UML图 类名的定义 没有特殊要求,任何合法的名称都可以,类名通常是一个名词。 属性定义的基本语法 属性是用来描述类所具有的特征。描述属性的语法格式为: 可见性 属性名:类型名=初始值 对于可见性,+表示public, -表示private, #表示protec...
阅读(163) 评论(0)
149条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:45712次
    • 积分:1886
    • 等级:
    • 排名:千里之外
    • 原创:148篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    博客专栏
    最新评论