
Java
冯以铭
阿里云博客:https://yq.aliyun.com/u/fengyiming
展开
-
Compareble 接口与Comparator接口使用示例
直接上代码package com.galaxy.fym.model;import java.util.Comparator;/** * Created by fengyiming on 2016/7/25. */public class FymComparator{ public Integer key; public String value; public FymComp原创 2016-07-26 10:02:11 · 564 阅读 · 0 评论 -
数组和链表的区别
1、数组的存储空间是一大片连续的,链表的存储空间是不定的,每个链表的节点元素都会存储该节点的数据和下个节点的地址指向。数组初使化必须制定大小,而链表却不需要便是这个原因。2、就增删改查而言,数组因为地址是连续的,所以数组的查询修改很快,但是增删的时候由于需要移动后面所有的元素反而较慢,对应的链表在查询的时候由于需要从第一个元素开始,直到找到你想要的元素,反而在增删的时候只需要修改对应节点的指针就可以原创 2017-02-01 16:05:56 · 2036 阅读 · 0 评论 -
JAVA常用自定义的注解使用
@Deprecated 一般表示该方法可能在以后的版本不用了@Retention 注释类型的注释要保留多久,可配置RetentionPolicy类型的数据,只能配置一种package java.lang.annotation;public enum RetentionPolicy { /** * Annotations are to be discarded by the comp原创 2016-08-09 18:01:49 · 462 阅读 · 0 评论 -
HashMap
1、HashMap底层实现其实是一个数组,每个数组的元素是Entry final int hash; final K key; V value; Node<K,V> next;2、Java中HashMap是利用“拉链法”处理HashCode的碰撞问题。在调用HashMap的put方法或get方法时,都会首先调用hashcode方法,去查找原创 2017-02-08 14:52:01 · 439 阅读 · 0 评论 -
Java基础知识
1、volatile关键字,无锁同步使用的关键字,被volatile描述的关键字,程序在执行的时候强制读取的是cpu内存里的数据2、除了String类的字面常量会用到常量池,Java基础类型的包装类也会用到常量池,包括Byte,Short,Integer,Long,Character,Boolean;要注意Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对原创 2016-08-25 17:35:36 · 422 阅读 · 0 评论 -
微信红包算法研究
背景:之前过年亲戚人都在抢红包,都想抢第一个,说是越早抢越大。其实这肯定是不正确的,微信在你发红包的时候应该已经生成所有的红包了,所以说你无论第几个抢,按说应该都一样,除非微信做了一些处理,比如说越早抢红包越可能手气最佳,过完年回来上班,突然想起了微信红包,就在想微信红包生成的策略。20块钱10个红包,人均2块钱。因为理论上红包的金额应该在2块钱左右,而且越大概率越小,感觉这个很像正太分布函数,所以原创 2017-02-19 23:50:40 · 6287 阅读 · 0 评论 -
算法研究:已知不重复的int集合,求最长递增子序列
问题背景:最近换工作面试,面试官问了一道编程题,大体是已知不重复的int集合,求最长递增子集合,这个集合可以不是连续的,但顺序呢不能乱。比如说:{2, 7, 3, 13, 6, 8}里最长递增子集合的就是{2,3,6,8}。这道题感觉很有意思,于是回家就用代码实现了一遍。主要代码:package com.galaxy.fym.algorithm.maxsublist;import org.apach原创 2017-02-16 23:18:29 · 458 阅读 · 0 评论 -
JAVA值传递
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量原创 2017-02-05 11:33:23 · 334 阅读 · 0 评论 -
Java多线程
首先要定义一个线程池来跑管理你的线程 private ExecutorService poolExecutorService = Executors.newFixedThreadPool(10);定义一个监控线程数量的值,用来保证每个线程都跑完了CountDownLatch begin = new CountDownLatch(size);然后用Future 接收每个线程返回的数据Future原创 2016-09-14 16:54:08 · 239 阅读 · 0 评论 -
java static关键字 以及使用注意事项
static关键字原创 2016-12-15 10:41:30 · 749 阅读 · 0 评论 -
JAVA web项目返回excel文件的方法
服务端代码:记得引poi3.8的包@RequestMapping("exportFile") public void exportFile(HttpServletRequest request, HttpServletResponse response){ try{ String fileName = "findMedicine.xlsx";原创 2016-07-07 10:32:05 · 3990 阅读 · 0 评论 -
读取项目里含指定注解的方法 @interface妙用
package com.galaxy.mobile.api;import com.galaxy.mobile.api.config.ApiAction;import com.galaxy.mobile.common.utils.StringUtils;import org.apache.commons.collections.CollectionUtils;import org.apache.原创 2016-07-19 14:30:53 · 1866 阅读 · 0 评论 -
JAVA反射机制
1、field的isAccessible()方法并不能用来判定该属性是否为public类型原创 2016-08-01 11:23:53 · 380 阅读 · 0 评论 -
常用开发环境配置问题
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-10-12 21:30:37 · 490 阅读 · 0 评论 -
常用工具类的介绍
1、StringUtils.join()可以直接将一个String[]转化为String,这里我用的是package org.apache.commons.lang提供的StringUtils工具类原创 2016-07-29 11:42:32 · 363 阅读 · 0 评论 -
logback使用
1、需要引入maven配置 ch.qos.logback logback-classic 1.0.0 这个会依赖slf4j-api和logback-core。2、LoggerFactory.getLogger()方法可以传递两种参数。自己起的名字和类.class。主原创 2016-06-24 15:09:15 · 1331 阅读 · 1 评论 -
JAVA如何定义和书写业务级interface代码
业务级interface原创 2016-10-27 10:48:10 · 2181 阅读 · 0 评论 -
mac下使用java命令直接执行类文件(找不到或无法加载主类)
首先你得安装java,直接去oracle下载java的安装包下载链接环境变量配置(没有.bash_profile就自己建立一个)cd ~ls -lfvi .bash_profile下面是我的java环境变量的配置#java配置export JAVA_HOME_7=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Homeex原创 2016-12-12 12:01:27 · 14388 阅读 · 3 评论 -
如何实现 :双栈实现队列 双队列实现栈
看代码就懂咯package com.galaxy.fym.queueandstack;/** * Created by fengyiming on 2016/12/7. */public class TwoStackToQueue { private StackTest stackTest1 = new StackTest(); private StackTest stackTes原创 2016-12-08 00:20:24 · 816 阅读 · 0 评论 -
JAVA常识整理
1、JVM结构:类加载器子系统、运行时数据区(内存空间)、执行引擎以及与本地方法接口等组成。其中运行时数据区又由方法区、堆、Java栈、PC寄存器、本地方法栈组成。内存空间中方法区和堆是所有Java线程共享的,而Java栈、本地方法栈、PC寄存器则由每个线程私有。2、Java栈:由栈帧组成,一个帧对应一个方法调用。调用方法时压入栈帧,方法返回时弹出栈帧并抛弃。Java栈的主要任务是存储方法参数、局部原创 2017-02-22 10:23:59 · 1219 阅读 · 0 评论