自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 暑假刷题总结

总结一下我做过的部分剑指offer的题重建二叉树 // 重建二叉树 // 思路:前序遍历第一个是根节点,找到中序遍历的根节点,则找到中序遍历的左右子树,接着找到前序遍历的左右子树,用递归。public class Solution { public TreeNode reConstructBinaryTree(int[] pre, int[] in) { return reBuil...

2019-09-05 00:14:49 149

原创 java.util.Concurrent.CopyOnWriteArrayList<E>分析

与ArrayList比较1、 ArrayList每次扩容和删除都需要把原数组复制到新数组中,开销很大2、 CopyOnWriteArrayList是ArrayList 的一个线程安全的变体读写分离CopyOnWriteArrayList:写操作在一个复制的数组上进行,读操作在原数组中进行,读写分离互不影响;写操作需要加锁,防止并发写入时导致写入数据丢失;写操作结束后需要把原数组指向...

2019-08-01 10:11:28 620

原创 百变的世界,不变的String

String是不可变的,因为它被声明为final类型,也就不可以被继承。java 8 中,String使用char[] 存储数据public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for cha...

2019-07-30 10:07:29 175

原创 浅谈java的基本数据类型、包装类型和缓存池

基本类型(四类八种)整数型:byte,short,int,long浮点型:float,double字符型:char布尔型:boolean包装类型每个基本类型都有对应的包装类型,基本类型和其包装类型之间的赋值被称作装箱和拆箱。Integer x = 1; //这是装箱int y = x; //这是拆箱缓存池问题:new Integer(99) 和 Integer.v...

2019-07-30 09:40:55 430

原创 5.30练习

单例模式:// 单例设计模式// 设计一个类,只能生成该类的一个实例/** * 非线程安全的单例模式,只能用于单线程 * @author 杨飞 * */public class Singleton { //变量定义为私有属性 private static Singleton ourInstance; //得到实例的方法 public static Singleton get...

2019-05-30 11:05:01 160

原创 Java集合框架分析学习

集合框架数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架。一、 Collection接口ListSetQueue二、Map接口HashMap其它Map实现类网上找了一张集合框架的图,详细说明了接口及其实现类的关系:自己做了个略丑的思维导图...

2019-04-29 15:35:49 78

原创 数组中重复的数字

题目:在一个长度为n的数组里,所有的数字都在0~n-1范围内,请找出任意一个重复的数字。思路:排序将数组排序,然后扫描排序后的数组即可。时间复杂度:O(nlogn),空间复杂度:O(1)哈希表从头到尾扫描数组,每扫描到一个数字,判断该数字是否在哈希表中,如果该哈希表还没有这个数字,那么加入哈希表,如果已经存在,则返回该数字;时间复杂度:O(n),空间复杂度:O(n)交换0~...

2019-04-26 16:35:46 66

原创 找到字符串中第一个只出现一次的字符

import java.util.Scanner;/** * 找到字符串中第一个只出现一次的字符 * @author 杨飞 * 用双重循环模仿冒泡法找到重复的位置并标记,输出没有标记的第一个字符 */public class Main { public static void main(String[] args) { // TODO Auto-generat...

2019-04-24 17:46:11 431

原创 字符串排序

import java.util.Scanner;/** * 对输入字符串进行排序 * * @author 杨飞 * 循环依次找出a~z(排好序了), 不是a~z的插入到原来的位置 */public class Main { public static void main(String[] args) { // TODO Auto-generated method stu...

2019-04-24 17:15:36 101

原创 删除字符串中出现次数最少的字符

import java.util.Scanner;/** * 删除一个字符串中出现次数最少的字符 * @author 杨飞 * 遍历一次把字符出现的次数保存在数组num[]中 * 找到num[]中最小的数min * 最后遍历一次num[]不等于min则输出 */public class Main { public static void main(String[] args) {...

2019-04-24 16:51:57 156

原创 包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。思路:要使时间复杂度是O(1),需要每次压入一个新元素进栈时,将栈里的所有元素排序,让最小的元素位于栈顶。但是这种想法不能保证最后压入栈的元素能够最先出栈,因为这个数据结构已经不是栈了。于是借助于一个辅助的成员变量来存放最小的元素。每次压入一个新元素进...

2019-04-20 10:13:00 70

原创 顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。分析:循环结束的条件。第一圈左上角为(0,0),第二圈左上角为(1,1),左上角的行列坐标相同,于是我们可以在矩阵中选取左上角为(start,start)的一圈作为分析的目标。循环继续的条件。对于55矩阵,最后一圈只有一个数字,坐标为(2,2),且5>22;对于66矩阵,最后一圈有4个数字,左上角为(2,2),且...

2019-04-20 09:52:49 313

原创 对称的二叉树

实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和他的镜像一样,那么它是对称的。、思路1:可以仿照二叉树的镜像,先找出该二叉树的镜像,再和原二叉树比较。思路2:我们可以定义一种对称前序遍历算法,即先遍历父节点,再遍历右、左节点。假如前序遍历得到的序列和对称前序遍历得到的相同,那么该二叉树就是对称的。public class Test { public static b...

2019-04-20 09:26:17 65

原创 《剑指offer》——二叉树的镜像

二叉树的镜像题目:请完成一个函数,输入一棵二叉树,该函数输出他的镜像。分析求镜像的步骤:两棵树的根节点相同,但他们的左右两个子节点交换了位置。因此,我们可以先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左右子节点之后,就得到了树的镜像。方法:使用递归或非递归方式交换每个节点的左右子树位置。递归思路1:如果当前节点为空,返回,否则交换...

2019-04-19 22:59:16 71

原创 冒泡、插入、选择排序算法分析

一、如何分析一个排序算法1.1 执行效率1.1.1 最好、最坏、平均时间复杂度在分析算法的好坏时,要分别说出最好、最坏、平均时间复杂度的同时,也要说出最好、最坏时间复杂度对应排序的原始数据是什么样的。1.1.2 复杂度系数、常数、低阶时间复杂度反应的是数据规模 n 很大的时候的一个增长趋势,它表示的时候会忽略系数、常数、低阶 ,小规模数据除外。1.1.3 比较次数和移动次数基于比较的...

2019-04-08 20:10:39 156

原创 网络通信学习(二)——用电信号传输TCP/IP数据,探索协议栈和网卡

前面我们从解析浏览器中输入的网址开始,探索了生成HTTP请求消息、委托操作系统发送消息等步骤。现在,我们来探索操作系统中的网络控制软件(协议栈)和网络硬件(网卡)是如何将浏览器的消息发送给服务器的。深入探究创建套接字的过程,窥探协议栈的内部结构和套接字的实体协议栈内部如图:套接字的实体就是通信控制信息在协议栈内部有一块用于存放控制信息的内存空间,这里记录了用于控制通信操作的控制信息,如通...

2019-04-05 09:53:25 411

原创 网络通信学习(一)——浏览器生成消息,探索浏览器内部

作为通信学习的开篇,我们探索的第一阶段是浏览器将数据委托出去的过程。几个名词的百度百科解释:服务器服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理...

2019-04-01 20:15:46 297

原创 网络通信学习(六)——请求到达Web服务器,响应返回浏览器,通信旅途的终点

盼望着,盼望着,发出去的“快递”终于顺着“网线”到达了签收地……前面,我们探索了Web服务器前面的防火墙、缓存服务器、负载均衡器等设备,现在网络包已经通过这些设备,到达了Web服务器中,现在我们就来探索这一过程。一台电脑既可以是服务器也可以是客户端,那么客户端和服务器有什么区别?对于网络相关的那些部分,如网卡、协议栈、Socket库等,客户端和服务器是一样的,它们功能相同,但是用法会有所区别...

2019-04-01 17:06:10 342

原创 网络通信学习(五)——服务器端的局域网有什么玄机

之前我们探索了网络包在进入互联网之后,通过通信线路和运营商网络到达服务器POP端的过程。现在,我们要探索网络包朝服务器前进,通过防火墙、缓存服务器、负载均衡器等设备到达服务器的这一过程。几个名词的百度解释:防火墙所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的边界上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使In...

2019-03-31 17:10:07 477

原创 网络通信学习(四)——通过接入网进入互联网内部,探索接入网和网络运营商

吐槽几句,这一部分知识真的很多很杂,用到了很多协议,很多设备来实现信号传输,互联网通信也就在几十微秒之间,中间却经历了如此之多,真是成如容易却艰辛!名词解释接入网:所谓接入网,就是指连接互联网与家庭、公司网络的通信线路。一般家用的接入网方式包括ADSL(非对称数字用户线路)、FTTH(光纤到户)、ISDN(综合业务数字网)、CATV(社区公共电视天线系统)、电话线等。BAS:Bro...

2019-03-27 21:37:58 1983

原创 网络通信学习(三)——从网线到网络设备,探索集线器、交换机、路由器

几个名词的百度百科解释:集线器集线器(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI(开放系统互联参考模型)模型中的物理层。它可以视作多端口的中继器,若它侦测到碰撞,它会提交阻塞信号。集线器通常会附上BNC and/or AUI转接头来连接传统10BASE2或10BASE5网络。由于集线器会把收到的任何数字信号,经过再生或放大,再从集线器的所有...

2019-03-26 23:16:43 1001

原创 IP地址详解,网络分段

IP地址IP地址是什么?百度百科:IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世...

2019-03-22 14:47:57 12310

原创 《第一行代码》学习笔记一

###第一章 开始启程——你的第一行代码Android的由来安卓之父:安迪·鲁宾(Andy Rubin)2003年10月,安迪·鲁宾牵头创建了一家公司,名为Android,开始开发一款针对手机端的操作系统。2005年8月谷歌低调收购了这家公司及其团队,安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。2007年11月,谷歌公司正式向外界展示了这款名为Android的操...

2019-03-05 22:47:16 356

原创 Android中线程及Handler的使用(计时器app)

先上效果图:此app实现的功能是从0开始计时,每隔一秒数字加1,是一个简易的计时器。这是工程目录:首先写两个TextView,一个显示“计时”(countername),一个显示时间(showCounter)。要想实现计时功能,则必须要用线程来实现,而要改变显示的数字,也就是Android线程要和UI交互,需要使用Handler!只有主线程才能去更新UI界面,其余的子线程都不可操...

2019-03-01 10:37:18 2635

原创 Android登入界面(初识Android)

下面总结一下设计一个简单的app的方法。我用的是eclipse ADT软件,设计一个app先新建一个Android Application Project。工程的目录如下图:主要是要编写两个文件:1、src&gt;.java这是实现函数功能的Java文件2、res&gt;layout&gt;.xml这是设计app的UI文件简略提一下其他几个重要的文件:1、bin&gt;.apk这是这...

2019-02-28 17:26:19 527

转载 UDP实现客户端(Android)和服务器之间通信

UDP通信原理UDP一般和TCP进行比较,TCP是一种可靠的面向连接的通信协议,在发送数据前会通过三次握手建立可靠的连接,在发送数据报的过程中有数据报的重传机制,在结束连接的时候有四次挥手来保证所有的数据可以顺利地发出,然后安全地断开服务器和客户端的连接。而UDP不能保证这些,UDP只需要知道目的地的...

2019-02-26 20:55:54 1433

原创 Android学习之Handler机制

初学handler觉得很难理解,同学写的一篇知乎将handler解释的生动易懂,特附此链接,转载请注明原作者出处。

2019-02-24 09:53:26 85

原创 “低配版”win10画图板的实现

下面总结一下画图板的实现!![在这里插入图片描述](https://img-blog.csdn工程目录如图:代码如下:/** * 简易画板的实现 * @author 杨飞 * */public class DrawFrame extends JFrame { private Shape[] shapeArray = new Shape[100000]; private i...

2019-01-19 14:52:22 1113

原创 Java入门——UI牛刀小试

今天总结一下Java UI的实现。先来看效果…乍一看以为是QQ的登入界面,其实只实现了一个UI的显示,输入框和复选框以及登录按钮都没添加监听器,所以点击是没有反应的(想了想还是加一点监听器,不过没有输出提示)。之所以做成QQ登入界面,非以假乱真,盖心仰之也!下面把代码献丑放出来了:Login.java:/** * Login登入界面的实现 * @author 杨飞 * */p...

2019-01-19 14:16:43 4079

原创 类与对象

类与对象、类的继承对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础。抽象、封装、继承、多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与对象、类的继承的相关知识。关键字 class一个类包含1、属性2、方法以Student类为例讲述一个类:此Student类中有两个属性:name和score。一个学生有名字,有分数等属...

2018-11-25 21:13:46 107 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除