- 博客(12)
- 收藏
- 关注
原创 java中comparable和comparator
在java中,如果想实现两个对象之间的比较,那么我们有两种选择。一是实现comparable<T>接口中的int compareTo(T o)方法。二是实现comparator接口中的int compare<T>(T o1,T o2)方法。上面的两种方法都返回一个int值,若大于0,说明第一个对象大,等于0表示相等,小于0,说明对象小.下面介绍一下两者的区别。1.comparable –自己与其他
2017-02-19 10:15:15 338
原创 详解java中volatile关键字
volatile的内存可见性在多线程环境下,经常看到volatile关键字。用volatile修饰的变量,能够保持内存的可见性。而什么是内存的可见性呢? 所谓的内存可见性就是一个线程对共享变量进行修改,其他线程能够立即得到该共享变量的最新值。 为什么会出现内存的不可见性呢?这是因为每个线程都有自己的缓存。一个线程对共享变量的修改会先修改缓存,然后再写入到主存中。在这个过程中就会出现线程读取的不一
2017-02-12 15:12:20 370
原创 java值传递
对于java来说,只有值传递一种方式,并不存在引用传递,无论是传递的参数是基本数据类型还是对象类型。对于基本数据类型传递的是其值的副本,对于对象类型传递的是引用的副本。下面我就来举例说明。 1.基本数据类型public class Test { public static void main(String[] args) { int i=0; fermin
2017-01-03 10:54:15 435
原创 Java 语言中字符串 ”学java” 所占的内存空间问题
今天看到下面的知道题目后,总觉得哪里不是很对。所以就查了查资料。总结如下。不确定一定对,但是个人感觉就是这么回事,希望有更准确的解释。Java 语言中字符串 ” 学java” 所占的内存空间是() * A 6个字节 * B 7个字节 * C 5个字节 * D 10个字节 很多的答案是A 。但是java实际是采用unicode编码,准确的说是采用utf-16编码的,这在java的说明手册中
2016-12-04 15:26:17 8336 1
原创 括号匹配
左右括号的匹配问题,可以用栈来很好的解决。 1. 遇到左括号,就入栈。 2. 遇到右括号,判断此时栈是否为空。 * 栈为空,说明右括号多。 * 不为空,判断栈顶元素与该右括号是否对应,不对应,说明不匹配。如{(};若匹配则出栈。 3. 最后,遍历整个Str后,若栈为空,说明完全匹配,若栈不空,说明左括号多。import java.util.Stack;public class Bra
2016-11-15 14:52:28 586 1
原创 选钱博弈问题
下面的这道问题是某公司的校招题,近日听了程云老师的讲解,觉得恍然大悟。遂总结如下:【题目】给定一个整型数组money,代表数值不同的钱排成一条线。玩家A和玩家B依次拿走每张钱,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的钱,玩家A和玩家B都绝顶聪明。请返回最后获胜者的钱数。【举例】arr=[1,2,100,4]。 开始时玩家A只能拿走1或4。如果玩家A拿走1,则排列变为[2,
2016-11-10 09:53:39 335
原创 工厂模式
工厂模式 工厂模式分为简单工厂模式(静态工厂),工厂方法模式,抽象工厂模式三大类。1.简单工厂模式简单工厂模式又叫静态工厂模式,是指将new一个对象的操作交由工厂的静态方法来产生。这样做的目的是可以在new一个对象的时候来进行一些操作判断。 假如我们有一个Car类,然后某人想去开车,我们要判断其是否有驾照等。public class Car { public void drive()
2016-10-25 11:37:58 309
原创 ubuntu无法打开terminal
ubuntu无法打开terminal在编译openjdk源码的时候,将语言设置为LANG=c。关机之后再开机就无法打开terminal.无论采用哪种方式。后来到网上查找答案,解决方法如下。 1. ctrl+alt+F1 进入命令行模式。之后执行sudo apt-get install xterm 2. 在安装好的xterm下,启动gnome-terminal 会得到terminal exit w
2016-10-12 10:34:24 39537 5
原创 java中Infinity和NAN
昨天做完美世界的在线笔试题,有一道选择题是求 System.out.println(5.0/0.0+''-"+0.0/0.0); 的输出结果。当时确实不知道是什么结果,所以考完试就抓紧查了些资料。参考这篇博客 http://blog.csdn.net/naruto_ahu/article/details/8805808 正确的输出结果是Infinity-NaN
2016-04-26 18:04:06 7527
原创 ubuntu下安装eclipse不显示菜单栏
以下均为在网上查找的资料,经过自己的摸索整合。按照正常步骤安装完eclipse后,我们需要创建快捷方式,如下。1、sudo gedit /usr/share/applications/eclipse.desktop 2、向eclipse .desktop中添加以下内容: [Desktop Entry] Encoding=UTF-8
2015-11-15 14:26:27 842
原创 lCS——最长公共子序列
首先说一下最长公共子序列和最长公共子串的区别。公共最长子序列是可以对你要比较的字符串进行一个或多个的字符删除后所留下的串,不要求一定连续。而最长公共子串要求结果的串一定是连续的。 例如:String s1=”ABCD”; Stirng s2=”BCAD”; 所以最长公共子序列是BCD.而最长公共子串是BC. 下面介绍算法的具
2015-10-23 09:34:20 283
原创 新起点
马上就要开学了强调内容,将要正式的步入研究生的学习生涯了。虽然本科也是计算机专业并且能顺利的保研进入还理想的大学读研是一件高兴的事。但是,发现自己的能力还是差很多呀,尤其是算法这类的技能。本科期间也曾经历了找工作的那段难忘的日子,虽然最后的结果也还很满意,进入了互联网领域前几的公司吧。但是个人觉得这里面有很多的运气和沟通技巧在里面。因为本科期间做了一些实际的项目,但是技术掌握的程度只能是会使用
2015-09-01 16:29:08 268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人