0%

问题描述

给定一个矩阵,一个机器人在矩阵左上角,目标在矩阵右下角,机器人每次只能向右或向下走一步,要求找出机器人从左上角走到右下角共有多少种走法。题目链接:**点我**

阅读全文 »

问题描述

给定一个 9 * 9 的数独棋盘(二维数组),其中只有数字 1~9 或字符 .,用字符 . 代表棋盘位置没有填充数字,要求判断给出的部分填充数字的数独棋盘是否是合法的。其合法性只针对填充的数字而言,未填充的区域不用判断,其要求同时满足以下几个条件:

  • 每一行、每一列的数字没有重复
  • 从左到右、从上到下,依次每个 3 * 3 的小矩阵内数字没有重复

题目链接:**点我**

阅读全文 »

定义

当多个线程访问某个对象时,不管运行是环境采用何种调度方式或者这些线程将如何交替执行,并且爱主调代码中不需要任何额外的同步或协同,这个对象都能表现出正确的行为,那么就称这个对象是线程安全的。
                                                                                                                ——《Java 并发编程实战》

这个定义是严谨的,但是看起来有点绕,稍微不严谨一点的说法就是:当一段代码能够在多线程环境下正常运行得到正确结果,那这段代码就是线程安全的。

阅读全文 »

问题描述

给出一个链表,要求按照顺序将链表中每两个节点分成一组,并将组中两个节点交换顺序,重新组成新的链表后返回链表的头节点指针。要求只能使用额外的常量空间。题目链接:**点我**

阅读全文 »

概述

java 内存模型(Java Memory Model, JMM)是 java 虚拟机定义的一种抽象的模型,主要是用来屏蔽各种硬件和操作系统的内存访问差异,以实现让 java 程序在各种平台下都能达到一致的内存访问效果。其模型大致如下图所示:

java内存模型

阅读全文 »

问题描述

给定一个字符串,字符串中只包含数字 2 ~ 9,每个数字对应的字母如下所示,要求将给定的数字的字符串转成对应的字母字符串组合。题目链接:**点我**

2:a、b、c

3:d、e、f

4:g、h、i

5:j、k、l

6:m、n、o

7:p、q、r、s

8:t、u、v

9:w、x、y、z

阅读全文 »

概念

自动装箱和自动拆箱是 java5 提供的一种语法糖,主要是为了方便程序员进行代码编写,在编译时会自动将语法糖去除还原成其真正的语法。

自动装箱:将基本类型转换为其包装类型。如将 int 转成 Integer。其主要是通过包装类中的 valueOf 函数完成的。

自动拆箱:将包装类型转成基本类型。如将 Integer 转成 int。其主要是通过包装类中的 xxxValue函数完成的,其中 xxx代表基本类型。例如 Integer 类中是 intValueLong 类中是 longValue

阅读全文 »