随笔分类 - Java
摘要:拿硬币 Question: 有10个硬币,我和你按顺序拿,每次可以拿1、2或者4个,拿到最后一个硬币的人输,你怎么确保自己可以获胜(这个问题的有一个前提:双方都想赢,并且当遇到能赢的情况时,他们能做出正确的决策而不是随便决策) 这种问题,可以从简单情况先想...
阅读全文
摘要:递归实现单链表的反转链表反转之前用迭代实现了链表反转,受同学启发,也可以用递归方式实现,如下。 对于链表结构,还是采用单链表的反转里面的结构。注意: 由于递归的操作是规模缩小,操作重复的,所以递归时直接从第一个数据结点开始(不是从空的头结点开始),虽...
阅读全文
摘要:单链表的反转单链表概念引入 有一个空的head节点作为头节点,头节点的存在主要是为了操作的统一性而设立的(删除增添节点等操作能够统一,不需要特殊考虑单独情况),当然它不是必须的,它的数据域毫无意义。我们的目标:实现单链表的反转 1.如果考虑不破化原有链表,...
阅读全文
摘要:Java的异常处理机制简介 Java的异常结构图 从图中观察可得:所有的异常类是从java.lang.Exception的继承子类。Exception类是Throwable的子类。Error也是它子类之一,异常可能在如下几种情景下发生:用...
阅读全文
摘要:2SUM、3SUM、KSUM2SUM:Question: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。Example:给定 nums = [2, 7, 11, 15], ...
阅读全文
摘要:String、StringBuffer、StringBuilder 比较先对三者的速度做一下比较: 1.String: 结果: 2.StringBuffer: 结果: 3.StringBuilder: 结果: 三者的速度: StringBuil...
阅读全文
摘要:前言开头先回忆一下,面向对象的三大特征:封装(数据抽象)、继承、多态。为什么多态排在最后一位,因为它是以前面两个为前提的,尤其是继承。多态概念梳理多态本质在于 同一种行为的多样化表达 (这句话不禁让我想起了基因的多样性表达,这是现实世界物种多态的原因)。对于...
阅读全文
摘要:前言先声明一个常识,类域和局部变量初始化的差异如下, 局部变量不初始化会报错: 类中属性(也称域)不赋初值,默认为0,如果是引用默认为空。 正题一、类中属性按照定义的顺序初始化我们声明一个Child类,拥有两个构造方法: 我们在Main类中创建Child的...
阅读全文
摘要:前言笔者之前一直对super关键字不是很理解,尤其是有说法,super关键字会在子对象里创建一个父对象这种说法,第一次听到时我只是感叹java神奇。 但是那时作为新手的我,只能选择相信,但是后来越学就越不相信。误解在国内查阅相关super关键字介绍,大多也...
阅读全文
摘要:前言首先声明,用接口或者抽象类实例化一个对象是不可能的,错误的。接口、抽象类实现注意点Interface 属性默认都是 public static final方法默认都是 public abstract 都不用显示声明抽象类 至少含有一个方法是abstrac...
阅读全文
摘要:访问修饰符切勿心急,慢慢看。先上图网上说法,关于访问修饰符限制范围大家先了解一下: 上图我从网上找的图,但是说明却不怎么详尽,经过一番思考,不管是类,属性还是方法,作者觉得访问修饰符是从这两个方面来限制他们的:可见性角度,抑或称可调用性,决定是否可见,即使用...
阅读全文
摘要:引言排序和检索是数据数据的两个关键部分,排序是想尽快有序组织数据,检索则是想尽快查找数据。 最近发现对这个知识点里的部分内容生疏,所以特此做个总结。环境IDE:Eclipse 语言:Java排序分类 排序算法在实现方法上被分为两个大类,我们今天讲的是基于比...
阅读全文
摘要:引言手写识别也是当前机器学习的一大热点,数字手写识别是手写识别中的基础,我们用到的是knn算法,今天给大家讲一下我的实现方法;环境IDE:Eclipse 语言:Java项目:数字手写识别思路数据采集:我们知道,一张图片可以被看作一个个点组成的矩阵,对于手写数...
阅读全文
摘要:引言Hashtable的淘汰开始于它的“t”没有大写,hh~。 Hashtable 是Java中第一批用来实现hash的数据结构,但是长江后浪推前浪,Hashtable逐渐退出舞台,本文就HashMap和Hashtable的差异进行比较和总结。差异比较一、h...
阅读全文
摘要:五子棋人机博弈五子棋,人与人之间博弈,我们不用考虑太多,都是玩家自动思考。 但是如果我们要玩一个单机的五子棋,实现人机的对战,那么我就得“帮”电脑考虑下走哪步了。 实现的方法大概有三种:最大权值法决策树法机器学习训练这里我们主要针对第一种方法讨论下,大致思路...
阅读全文
摘要:原文出自 大C http://www.cnblogs.com/wangxiaoha/p/6293340.html 供大家学习参考有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示:用e...
阅读全文