Java
CharonChui
这个作者很懒,什么都没留下…
展开
-
Java基础面试题
Java基础面试题本部分全部内容是根据张孝祥老师的Word文档整理而来。只不过是为了方便观看,把代码部分用markdown来展示。整理时脑海中不断回忆起张老师上课的情景,真是怀念。一个”.java”源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。Java有没有goto? java中的保留字,现在没有翻译 2015-04-10 14:38:55 · 1181 阅读 · 0 评论 -
剑指Offer(下)
剑指Offer(下)剑指Offer(上)一共是23道题。 二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同 思路: 在后序遍历得到的序列中,最后一个数字是树的根节点的值。 数组中前面的数字可以分为两部分:第一部分是左子树结点的值, 它们都比根节点的...原创 2018-06-01 15:55:20 · 269 阅读 · 0 评论 -
剑指Offer(上)
剑指Offer(上)最近面试,遇到一些笔试题,写不上来,内心是崩溃的,该好好复习下了,所以决定仔细做一遍,随便也整理下,方便大家学习。我没找到第一题是什么- -!,谁知道的给补充下吧实现单例模式 单例的实现分为好几种: 饿汉式懒汉式枚举 具体实现: 饿汉式 public class Single...原创 2018-06-01 15:54:50 · 558 阅读 · 0 评论 -
HashMap实现原理分析
HashMap实现原理分析HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,HashMap采用链表来解决的。 在HashMap里有这样的一句属性声明: transient Entry[] table;可以看到Map是通过数组的方式来储存Entry那Entry是神马呢?就是HashMap存储数据所用的类,它拥...原创 2018-05-31 17:47:35 · 174 阅读 · 0 评论 -
hashCode与equals的关系
hashCode与equalsHashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键。 那么Java运行时环境是如何判断HashSet 中相同对象、HashMap中相同键的呢?当存储了相同的东西之后Java运行时环境又将如何来维护呢? 在研究这个问题之前,首先说明一下JDK对equals(Object obj)...原创 2018-05-31 17:46:53 · 159 阅读 · 0 评论 -
线程池的简介
线程池简介所谓线程池,就是将多个线程放在一个池子里面(所谓池化技术),然后需要线程的时候不是创建一个线程,而是从线程池里面获取一个可用的线程,然后执行我们的任务。线程池的关键在于它为我们管理了多个线程,我们不需要关心如何创建线程,我们只需要关系我们的核心业务,然后需要线程来执行任务的时候从线程池中获取线程。任务执行完之后线程不会被销毁,而是会被重新放到池子里面,等待机会去执行任务。在什么...原创 2018-05-31 17:46:12 · 234 阅读 · 0 评论 -
Java动态代理
动态代理有关代理模式已经动态代理和静态代理的区别请查看另一篇文章设计模式 刚毕业的时候在学习android时看到过张孝祥老师的Java高新技术,里面 讲到了动态代理,当时看完后感觉懂了.但是现在全部都忘了。 因为动态代理我们平时用的其实并不多,但是作为Android开发,你肯定知道Retrofit,而Retrofit就是基于动态代理实现。 动态代理的...原创 2018-05-31 17:45:00 · 502 阅读 · 0 评论 -
Android图片加载库比较
图片加载库比较Android开发过程中,图片加载基本是每个项目都必备的功能,图片加载的开源项目也比较多,从最老牌的Android-Universal-Image-Loader,到后来Google的Volley再到良心公司Square的Picasso以及FaceBook的Fresco和Google IO开发者大会上推荐的Glide。面对这么多的加载库我们该如何去选择? 他们各有优缺点,没...原创 2018-05-31 17:42:26 · 1548 阅读 · 0 评论 -
搭建nginx+rtmp服务器
搭建nginx+rtmp服务器为了更好的进行直播功能的开发,我们需要本地搭建nginx+rtmp服务器,下面就是介绍如何在Mac上的搭建步骤: 安装Homebrew(有关Homebrew的介绍请参考Homebrew介绍打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令man brew 如果Mac已经安装了, 会显示一些命令的帮助信息. 此时输入Q退出即可, 直接进...原创 2018-05-31 17:40:22 · 494 阅读 · 0 评论 -
算法
算法算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题, 执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确原创 2015-04-10 14:42:11 · 659 阅读 · 0 评论 -
生产者消费者
生产者消费者public class ProducerConsumerDemo { public static void main(String[] args) { Resource r = new Resource(); Producer pro = new Producer(r); Consumer con = new Consumer(r)原创 2015-04-10 14:42:09 · 664 阅读 · 0 评论 -
RMB大小写转换
RMB大小写转换public class RenMingBi { private static final char[] data = new char[] { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; private static final char[] units = new char[] { '元', '拾', '原创 2015-04-10 14:39:23 · 828 阅读 · 0 评论 -
MD5加密
MD5加密MD5是一种不可逆的加密算法只能将原文加密,不能讲密文再还原去,原来把加密后将这个数组通过Base64给变成字符串, 这样是不严格的业界标准的做法是对其加密之后用每个字节&15然后就能得到一个int型的值,再将这个int型的值变成16进制的字符串.虽然MD5不可逆, 但是网上出现了将常用的数字用md5加密之后通过数据库查询,所以MD5简单的情况下仍然可以查出来,一般可以对其多加密几次或原创 2015-04-10 14:38:38 · 667 阅读 · 0 评论 -
获取今后多少天后的日期
获取今后多少天后的日期/** * Get the date some days later. * @param year the year * @param month month of the year * @param day day of the month * @return if the parameter is illegal this will return null */原创 2015-04-10 14:41:13 · 665 阅读 · 0 评论 -
单例的最佳实现方式
单例的最佳实现方式public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() { } /** * SingletonHolder is loaded on the first execution of Singl原创 2015-04-10 14:39:52 · 426 阅读 · 0 评论 -
网络请求相关内容总结
网络请求相关内容总结网络数据传输,熟悉多线程、Socket网络编程、熟悉TCP、UDP、HTTP等协议网络编程概述: 网络模型: OSI模型 应用层 表示层 会话层 传输层 网络层 数据连接层 物理层 TCP/IP模型 应用层 传输层 网际层 主机原创 2015-04-10 14:42:37 · 601 阅读 · 0 评论 -
死锁
死锁/** * 死锁的原因就是同步的嵌套 */public class DeadLockTest { public static void main(String[] args) { Thread t1 = new Thread(new PrintRunnable(true)); Thread t2 = new Thread(new PrintRunna原创 2015-04-10 14:41:47 · 537 阅读 · 0 评论 -
强引用、软引用、弱引用、虚引用
强引用、软引用、弱引用、虚引用强引用(Strong Reference) 平时我们编程的时候例如:Object object=new Object();那object就是一个强引用了。如果一个对象具有强引用,那就类似于必不可少的生活用品, 垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决原创 2015-04-10 14:40:53 · 814 阅读 · 0 评论 -
Java 设计模式(Design Patterns)
设计模式(Design Patterns)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 项目中合理的运用设计模式可以完美的解决...转载 2018-06-01 15:56:09 · 2660 阅读 · 0 评论