Java
文章平均质量分 82
JiangNanMax
给生活添砖Java!
展开
-
Netty实战!基于 Netty 快速实现一个聊天小程序
Netty 是一个 Java NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发。(https://github.com/waylau/netty-4-user-guide)下面,就基于 Netty 快速实现一个聊天小程序。准备JDK 7+Maven 3.2.xNetty 4.x服务端让我们从 handler (处理器)的实现开始,handler 是由 N.原创 2021-05-26 19:04:36 · 652 阅读 · 0 评论 -
面试干货!Java集合框架常见面试题
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录1. 剖析面试最常见问题之 Java 集合框架1.1. 集合概述1.1.1. Java 集合概览1.1.2. 说说 List,Set,Map 三者的区别?1.1.3. 集合框架底层数据结构总结1.1.3.1. List1.1.3.2. Set1.1.3.3. Map1.1.4. 如何选用集合?1.1.5. 为什么要使用集合?1.2. Collection 子接口之 List1.2.1. Arrayl.原创 2021-05-26 13:25:58 · 540 阅读 · 0 评论 -
HashMap源码与底层数据结构分析
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录HashMap 简介底层数据结构分析JDK1.8 之前JDK1.8 之后HashMap 源码分析构造方法put 方法get 方法resize 方法HashMap 常用方法测试公众号HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表.原创 2021-05-26 12:56:17 · 368 阅读 · 0 评论 -
JDK LinkedList源码分析
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录简介内部结构分析LinkedList源码分析构造方法add方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除方法LinkedList类常用方法测试公众号简介LinkedList是一个实现了List接口和Deque接口的双端链表。LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性;.原创 2021-05-25 18:55:03 · 186 阅读 · 0 评论 -
ArrayList源码与扩容机制分析 详解版!
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录1. ArrayList 简介1.1. Arraylist 和 Vector 的区别?1.2. Arraylist 与 LinkedList 区别?2. ArrayList 核心源码解读3. ArrayList 扩容机制分析3.1. 先从 ArrayList 的构造函数说起3.2. 一步一步分析 ArrayList 扩容机制3.2.1. 先来看 `add` 方法3.2.2. 再来看看 `ensure.原创 2021-05-25 12:16:28 · 207 阅读 · 0 评论 -
用Java实现散列表HashMap
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言思考代码实现用法公众号前言之前的两篇文章,《用Java实现一个栈》以及用Java实现变长数组ArrayList中,笔者参考JDK中的集合类实现,分别实现了Stack和ArrayList。 这篇文章延续这一主题,实现了散列表 HashMap,继续回顾基础的数据结构知识。思考开始代码实现之前,我们先大致列一下实现HashMap需要的方法,初始化、设置key-value、通过key获取valu.原创 2021-05-15 18:18:06 · 507 阅读 · 0 评论 -
Java堆栈内存、堆外内存、零拷贝浅析与代码实现
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!目录Java堆栈内存和堆外内存1. 堆栈内存2. 堆外内存零拷贝公众号零拷贝,这是个耳熟能详的名词,是开发岗面试中经常提及的问题。最近在回顾Netty的基础原理,还是把NIO中关于堆外内存的知识点过了一遍,这里就针对堆栈内存、堆外内存和零拷贝这几个概念以及相关知识做一下记录。Java堆栈内存和堆外内存1. 堆栈内存堆栈内存,顾名思义,指的是堆内存以及栈内存,其中,堆内存是由Java GC进行管理的内.原创 2021-05-11 13:46:43 · 471 阅读 · 4 评论 -
用Java实现变长数组ArrayList
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言思考代码实现用法公众号前言在上一篇文章《用Java实现一个栈》中,小录实现了一个比较通用的栈(Stack),实现了基本的栈操作,包括初始化、入栈、出栈、获取栈顶元素、判断栈是否为空、获取栈内元素的个数等,另外还支持泛型。延续上篇文章的主题,小录又实现了变长数组(ArrayList),好好回顾一下基础的数据结构知识。思考开始代码实现之前,我们先大致列一下要实现变长数组所需要的方法:初始化.原创 2021-04-08 22:54:51 · 775 阅读 · 2 评论 -
用Java实现一个栈
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言思考代码实现用法公众号前言小录曾经在校招笔试中遇到一道代码编程题,该题是自己实现栈(Stack),实现一些基础功能,例如入栈、出栈、判断空、栈大小等。感觉出这道题的目的主要是:考察实际编码;考察对数据结构的理解;考察考虑问题是否全面。这并不是一个难题,但是你能否真正将其很完善的实现?你能否考虑到更深层次的问题,比如线程安全?这里,小录就针对这道题,实现一个比较通用的栈。思考我们要实现栈,.原创 2021-03-18 20:10:22 · 1012 阅读 · 9 评论 -
CPU使用率过高咋办?看这里
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言总体流程安装JDK命令行工具验证是否安装安装寻找问题所在解决问题公众号前言工作中发现机器的CPU使用率100%,不要慌,一起来找出原因并fix掉它。记住这个大致流程,当线上突然遇到时,就不会手足无措。总体流程找出CPU比较高的进程PID, top命令打印该进程下线程的CPU占用比较高的tid, top -Hp {PID}将该tid进行16进制转换id, printf "%.原创 2021-03-17 12:00:18 · 1256 阅读 · 7 评论 -
Java是值传递还是引用传递?一文搞懂
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言代码示例值传递?引用传递?概念对比要点详解示例代码公众号前言今天聊一个很小的话题,值传递和引用传递。这个话题在其他高级语言中比较常见,但是在Java中,你一定听到过或者在网上看到过:“Java没有引用传递,只有值传递”。到底是怎么回事呢?今天就来聊一聊Java中的参数传递。代码示例这里通过一段简单的代码来一探究竟:public class Test { private Str.原创 2021-03-14 21:46:43 · 531 阅读 · 5 评论 -
建议学习!良好的代码规范
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言1、多此一举型2、瞎命名型3、if完一定要加else型4、复制粘贴型5、又长又臭型总结公众号前言在我们的项目中,开始开发之前,大家都会制定一些规范,根据这些规范来实施。小录也是如此,在开始开发一些新的代码项目之前,不管项目大小,都会先把代码规范过一遍,开发过程中也会注意遵守这些规范,防止给后续的维护带来负担。但是在开发过程中,往往由于进度紧张、人员变动等其他原因,项目不断的迭代之后,其中一些.原创 2021-03-09 21:08:55 · 607 阅读 · 4 评论 -
面试官常问的String细节
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!文章目录前言关于String将String设计成不可变类的原因代码示例String的创建方式1. 直接赋值法2. 构造器方法分析常用方法String的相关类公众号前言在我们的日常编程中,字符串的使用必不可少。而在Java中,字符串属于对象,其针对字符串提供了String类,同时还根据常见的字符串操作提供了相应的创建方法以及操作函数。相信你能够很熟练的使用Java新建一个字符串对象,并对该字符串对象执行.原创 2021-03-07 20:52:45 · 501 阅读 · 7 评论 -
深入理解final关键字
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!如果你觉得JiangNanMax对你有帮助,欢迎赞赏!文章目录前言使用final修饰变量基本数据类型引用类型使用final修饰方法使用final修饰类使用final修饰参数公众号赞赏前言虽然final只是个关键字,但不能不理解其特点,因为在Java开发岗的面试中很有可能提及,而且在实际中代码开发中也会经常使用该关键字。final关键字的使用还是有不少细节性内容的,使用它的原因,以及带来的效果等。顾名.原创 2021-03-03 23:15:47 · 586 阅读 · 7 评论 -
如何避免在代码中大量使用if-else?
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!如果你觉得JiangNanMax对你有帮助,欢迎赞赏!文章目录前言使用枚举使用Optional表驱动法提前判断返回其他公众号赞赏前言前段时间,相信大家肯定和小录一样,被各个公众号的一篇标题为“CTO:再写if-else,逮着罚款1000”的推送轮番轰炸。而关于if else,小录也做了点总结,可供参考。说到逻辑控制语句,相信大家最先想到的就是if…else…。确实,在我们的日常编码中,尤其是算法题目.原创 2021-03-01 18:45:17 · 1881 阅读 · 0 评论 -
用Java实现一个区块链系统 附源码!
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!如果你觉得JiangNanMax对你有帮助,欢迎赞赏!文章目录前言1. 介绍2. 实现细节2.1 Java环境以及IDE2.2 项目导入及预览2.3 代码实现2.4 单元测试及系统运行效果公众号赞赏前言本学期将要担任导师开设的区块链课程助教,需要给本科生设计一些实验。其中第一个实验是一个比较有趣也比较简单的实验,使用Java实现一个区块链demo。分享在这里,感兴趣的同学可以下载源码进行尝试,欢迎交流.原创 2021-02-24 16:44:44 · 2576 阅读 · 2 评论 -
建议收藏!Windows、Mac以及Ubuntu安装和配置JDK的详细过程
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!如果你觉得JiangNanMax对你有帮助,欢迎赞赏!文章目录前言1. Windows10安装Java1.1 下载JDK1.2 安装JDK1.3 配置Java环境变量1.4 检测安装是否成功2. Mac安装Java2.1 下载JDK2.2 安装JDK3. Ubuntu16安装Java2.1 下载JDK2.2 安装JDK2.3 配置Java环境变量公众号赞赏前言本文详细记录了分别在Windows、Mac.原创 2021-02-22 16:11:13 · 720 阅读 · 6 评论 -
Java随笔记 - 详解进程的基本概念
微信公众号:Java随笔录关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!如果你觉得JiangNanMax对你有帮助,欢迎赞赏!文章目录什么是进程进程与程序进程与程序的联系进程与程序的区别进程的状态三态模型五态模型公众号赞赏什么是进程进程:是指计算机中已运行的程序。程序本身只是指令、数据及其组织形式的描述,相当于一个名词,进程才是程序(那些指令和数据)的真正运行实例,可以想像说是现在进行式。现代计算机系统可在同一段时间内以进程的形式将多个程序加载到内存中,并借由时间共享(.原创 2021-02-07 20:31:08 · 490 阅读 · 3 评论 -
Java随笔记 - 用wait()和notify()实现生产者消费者模型
Java随笔记 - 用wait()和notify()实现生产者消费者模型生产者消费者问题在多线程的相关基础知识中,生产者消费者是一个很经典的问题。理论上的概念就不多说了,总的来说就是抽象出三个对象,仓库、生产者和消费者,他们之间大致有以下几点联系:仓库为空时消费者停止消费;仓库放满时生产者停止生产;消费者成功消费后通知生产者进行生产;生产者成功生产后通知消费者进行消费;上述联系通过wait()和notify()方法即可进行简单的代码实现,当然还可以通过使用并发容器等原创 2021-01-05 20:09:22 · 613 阅读 · 1 评论 -
Java随笔记 - 实现一个自定义的BitMap
Java随笔记 - 实现一个自定义的BitMappreview对于刷OJ的人来说,卡内存的题一定不陌生,而面对这种题,往往会考虑bit数组能不能派上用场。对于这道题剑指 Offer 03. 数组中重复的数字,我就尝试了使用bit数组来打标记,运行效果略微优于书上提供的解法。BitMap对于数组中重复的数字这道题我是简单的定义了个byte数组进行了大致的实现,后来想说可以自己简单封装一个BitMap类,代码如下:package bitmap;import java.util.Array原创 2020-12-20 10:19:23 · 1848 阅读 · 6 评论 -
Java随笔记 - 断包和粘包 解决方法
Java随笔记 -断包和粘包 解决方法断包和粘包断包和粘包是Socket编程中经常提及的一个问题,这里大致从概念角度进行讲解,后续博客应该会结合代码实例进行简单的实验对比。TCP协议是面向连接、面向流的,因此它并不知道它在传输的是什么具体内容。而且当我们在同一条连接上传输多笔数据的时候,TCP协议会根据数据包的大小,出于性能以及包大小限制的考虑,对数据包进行合并或者切分发送。也就是说,我们自定义的应用数据包,如果比较小,那么在同一个TCP数据包中就可能含有多个上述自定义的数据包;而如果我们的自定义数原创 2020-12-14 20:58:57 · 1781 阅读 · 1 评论 -
java: Compilation failed: internal java compiler
IDEA报错: java: Compilation failed: internal java compiler error今天要Build公司那边给的项目框架时,Build失败,报的错误是:java: Compilation failed: internal java compiler error,具体如下图所示:主要的原因就是JDK版本不匹配,在IDEA的设置里进行如下修改:Apply后重新进行Build,成功:...原创 2020-12-10 17:05:39 · 1583 阅读 · 1 评论 -
剑指Offer Java实现 - 单例模式 饿汉式 懒汉式 双重校验 内部静态类
剑指Offer Java实现 - 单例模式 饿汉式 懒汉式 双重校验 内部静态类单例模式单例模式可以说是Java设计模式中最简单的一个了,它属于创建型模式。单例模式只涉及到一个单一的类,其中心思想就是由该类负责创建自己的对象,并确保只有单个对象被创建,同时向全局提供一个获取该单一对象的入口。总的来说,这个类需要提供一种访问其唯一对象的方式,且不需要实例化该类的对象,直接访问即可。可以总结出以下几点:单例类只能有一个实例对象;单例类需要自己完成其唯一实例的创建;单例类需要向全局原创 2020-12-08 14:19:35 · 2278 阅读 · 1 评论 -
Java随笔记 - 内核缓冲区与进程缓冲区
Java随笔记录 - 内核缓冲区与进程缓冲区Review在上一篇博客Java随笔记 - 内核态和用户态,提到了一个常见的误区,放在这里进行一下个人角度的详解。简单来说,我们所理解的read & write系统调用并不会直接对物理设备进行读写操作,系统底层也是有自己的缓冲区的。从抽象的角度看,也就是说,一个用户进程在内存中有自己的一个进程缓冲区,系统底层也有自己的一个内核缓冲区,read系统调用,就是将进程缓冲区中的数据复制到内核缓冲区中,而write系统调用则是将内核缓冲区中的数据复制到进程缓原创 2020-12-03 23:26:45 · 3309 阅读 · 1 评论 -
Java随笔记 - 内核态和用户态
Java随笔记 - 内核态和用户态常见误区拖更好久了,本咸鱼赶紧翻个身。前阵子在回顾IO相关的内容,昨天突然回忆起来挺久之前自己也踩过的一个误区,这里先大概提一下,顺便讲一讲老话题内核态和用户态,下一篇博客再详解一下这个误区。OK,大家都知道,我们所编写的用户程序在进行IO读写时,都是依赖于系统底层向上提供的系统调用,也就是read & write系统调用(不同的操作系统所使用的名称可能不一样,但是实现的效果基本是大同小异的,不再赘述)。误区就在这,read系统调用,并不是直接从物理设备上将数原创 2020-11-29 20:22:23 · 3162 阅读 · 0 评论 -
Java随笔记 - BIO,Socket实例,实现多笔数据的传输
Java随笔 - BIO,Socket实例,实现多笔数据的传输实现多笔数据的传输在之前的博客(Java随笔记 - BIO Socket 编程实例)中,给出了两个简单的Socket编程实例。一个是实现了字节流传输,其中由于服务端并不清楚客户端的数据传输在什么时候结束,所以在客户端代码的第23行可以看到,通过调用socket.shutdownOutput( )告知服务端,客户端的数据已经传输完毕了,相应的在服务端的代码第24行可以看到,服务端通过调用socket.isInputShutdown( )来检原创 2020-11-18 18:28:39 · 3030 阅读 · 0 评论 -
Java随笔记 - Java代码实现一个死锁程序
Java随笔记 - Java代码实现一个死锁程序死锁demo线程死锁是一个经典的多线程问题,因为不同的线程都在等待根本不可能释放的资源,从而导致所有的任务都无法继续完成。这里就不再赘述理论细节,主要是要用代码简单实现一个死锁的程序,具体代码如下:// new两个对象用来作为锁// 两个方法,方法A先获得obj1的锁,睡眠一秒后,尝试去获取obj2的锁// 方法B先获得obj2的锁,睡眠一秒后,尝试去获取obj1的锁// 两个方法错开,分别拥有一个锁,再去获取对方手里的锁,就会进入死锁状态原创 2020-11-15 13:34:00 · 4381 阅读 · 1 评论 -
Java随笔记 - BIO Socket 编程实例
Java随笔记 - BIO Socket 编程实例Review在上上篇博客(Java随笔记 - TCP通信的基本过程,三次握手,四次挥手)的最后,留下了三个经常被追问的问题,这里做一下个人的总结:为什么需要三次握手?两次行吗?会有什么问题?针对这个问题,从为什么两次握手不行来进行回答。我们假设就采用两次握手的策略来建立连接,也就是说,客户端向服务器发起一个连接请求,服务端收到这一连接请求后,返回一个确认包,连接就建立了。这看起来似乎没什么问题,也可以达到和三次握手同样的作用效果。但是,试设原创 2020-11-14 14:35:59 · 4678 阅读 · 0 评论 -
Java随笔记 - Java BIO,Socket通信
Java I/O中的Socket通信在上一篇博客里,对NIO进行了简单介绍,主要是其中的三个核心概念,详情见(Java随笔记 - Java NIO的初步认识,NIO的三个核心概念,Channel和Buffer的简单使用)。本来应该写一篇详解flip函数的文章的,这里插叙一下Java IO的几个点。早期的Java I/O库,所实现的是一种同步阻塞式的I/O模型,因此也被称为BIO(Blocking I/O)。所谓的同步阻塞式I/O,就是程序在遇到I/O操作时,需要阻塞当前程序的执行,等待I/O操作原创 2020-11-12 20:47:09 · 3950 阅读 · 0 评论 -
Java随笔记 - TCP通信的基本过程,三次握手,四次挥手
Java随笔记 - TCP通信的基本过程,三次握手,四次挥手基本过程TCP的通信过程与打电话的过程大致相同。一方负责接听某个特定号码的电话,而另一方则需要需要拨通这个号码,与对方建立通信连接。双方都可以通过听筒(Socket输入流)接受对方的信息,通过话筒(Socket输出流)向对方发送信息,并且在整个过程中信息的接受和发送是同时进行的(双工通信)。整个通信的过程可以用如下示意图来概括:在图中左侧(服务端)负责在某个端口上监听连接请求,接收来自客户端的连接请求,处理来自右侧(客户端)的原创 2020-11-12 13:11:49 · 3890 阅读 · 2 评论 -
Java随笔记 - Java NIO的初步认识,NIO的三个核心概念,Channel和Buffer的简单使用
Java随笔记 - Java NIO的初步认识,NIO的三个核心概念,Channel和Buffer的简单使用先从一段简单的代码看起:IntBuffer intBuffer = IntBuffer.allocate(10);for (int i = 0; i < intBuffer.capacity(); i++) { int randomNumber = new SecureRandom().nextInt(20); intBuffer.put(randomNumber);原创 2020-11-10 13:49:57 · 4410 阅读 · 2 评论 -
在Eclipse和IntelliJ IDEA中使用JDBC连接数据库
在Eclipse和IntelliJ IDEA中使用JDBC连接数据库一、前言看到数据库实践的下节课内容是有关 JDBC 的,那么要上机的话,肯定要在对应的项目中加载好 JDBC 驱动,装这个驱动的话是很简单的,不过第一次装的话应该还是会没头绪。。。这里就简单的写个教程这个教程包括两个部分,一个是使用 Eclipse,另一个是使用 IntelliJ IDEA 。因为这两个我都在用,所以...原创 2019-04-15 16:10:38 · 6167 阅读 · 1 评论 -
正则表达式学习总结 --- Java(一)
正则表达式学习总结 — Java版本(一)了解正则表达式正则表达式是一种强大而灵活的文本处理工具。使用正则表达式,我们能够以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索。一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理。初学正则表达式时,其语法是一个难点,但它确实是一种简洁、动态的语言。正则表达式提供了一种完全通用的方式,能够解决各种字符串处理相关的问题:匹配、编...原创 2018-12-18 22:51:54 · 5275 阅读 · 0 评论 -
正则表达式学习总结 --- Java(二)
正则表达式学习总结 — Java(二)正则表达式学习总结 — Java(一)在上一篇博客中,初步了解了正则表达式以及String类内建的几个正则工具,但它们都只是入门,接下来会进入 java.util.regex 包的使用,正则表达式的创建,以及多种应用方法。如有缺漏,欢迎补充;如有错误,希望纠正!创建正则表达式在开始学习正则表达式之前,我觉得有必要复习一下一些具有特殊含义...原创 2018-12-23 22:59:21 · 5166 阅读 · 0 评论 -
Java中的String、StringBuffer和StringBuilder
Java中的String、StringBuffer和StringBuilder概述String、StringBuffer 和 StringBuilder 这三个类是 Java 中处理字符串的利器,它们之间存在不同点,也存在一些共性。我觉得理清它们之间的关系很有必要,不仅仅在理论层次上,实践方面也很有必要,毕竟编程中经常使用到它们。首先,我们得牢记三者的特征:String 字符串常...原创 2018-11-28 20:32:55 · 5534 阅读 · 0 评论 -
Problem 03. longest-substring-without-repeating-characters
Problem 03. longest-substring-without-repeating-characters题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入:“abcabcbb”输出:3解释:因为无重复字符的最长子串是 “abc”,所以其长度为 3示例 2:输入:“bbbbb”输出:1解释:因为无重复字符的最长子串是 ...原创 2018-11-27 22:41:41 · 5482 阅读 · 0 评论 -
Problem 02. add-two-numbers
Problem 02. add-two-numbers题目描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按逆序的方式存储的,并且它们的每一个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。可以假设除了0之外,这两个数都不会以0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6...原创 2018-11-26 12:37:32 · 5559 阅读 · 2 评论 -
Problem 01. two-sum
Problem 01. two-sum题目描述给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的两个整数。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15],target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 ...原创 2018-11-26 11:04:23 · 5494 阅读 · 0 评论