自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 求的ArrayList的初始容量大小

这里如果有 list.add("jldsk"); 那么初始容量为10,如果没有添加这条语句,那么初始化容量为0;

2019-03-26 09:51:42 819

原创 常见的排序算法的稳定性

分析一下常见的排序算法的稳定性,每个都给出简单的理由。 冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。...

2019-03-16 09:47:51 1372

原创 两个大整数相乘

有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 #include <stdio.h>#include <string.h> //反转字符串void revstr(char *a){ int i; char temp; int l=strlen(a); for(i=0;i...

2019-03-14 23:33:16 581

原创 Redis的底层实现

动态字符串SDSRedis 没有直接使用 C 语言的字符串,而是构建了自己的抽象类型简单动态字符串(simple dynamic string)。 在 Redis 中,对于所有键,都是字符串类型,其底层实现是 SDS,而键值对的值,其实最终都是以字符串为粒度的,底层都是 SDS 实现。(比如列表,其实列表中每一项都是字符串以 SDS 实现的)。 SDS 结构中,包含 char 类...

2019-03-13 09:43:15 4378 1

原创 Java基础:JVM、JVM调优

什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,...

2019-03-13 09:18:23 2124

原创 基础算法:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

这里要注意的是当数字足够大的时候,我们要使用long long形式的类型,用来记录那个最大值 最大值共有四种情况: 三个正数:数字本身越大则乘积越大 两个负数一个正数:负负得正,所以两个负数最小,之积最大 两个正数一个负数: 这种情况,如果只有【正,正,负】【正,正,负,负】【正,正,负,负,负】【正,正,正,负,负】 所有的情况都包含在第一种和第二种情况里,所以这种情况可...

2019-03-12 23:25:46 2578

原创 TCP和UDP的区别和优缺点

TCP和UDP的区别 TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控...

2019-03-12 19:13:54 187

原创 TCP/IP详解--三次握手、四次挥手和TIME_WAIT状态

三次握手 第一次握手:主动打开方发送SYN同步报文段,表示我要和你连接了,自己进入SYN_SENT状态 第二次握手:被动打开方收到SYN报文,恢复ACK报文,自己也发送SYN报文表示我也要连接,进入SYN_RECV状态。 第三次握手:主动打开方收到对方ACK和SYN,自己再发送对SYN的确认。自己就可以进入ESTABLISHED状态表示自己可以通信了。被动打开方收到...

2019-03-12 18:55:25 495

原创 Java实现:生产者-消费者模型

public class text{ private static Integer count = 0; private static final Integer FULL = 10; private static String LOCK = "lock"; public static void main(String[] args) { te...

2019-03-11 14:42:37 213

原创 Int 和 Integer

从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换.Java为每个原始类型提供了包装类型: - 原始类型:boolean,char ,byte,short,int,long,float,double-包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,DoubleInt和Integer的区别:Integer 是int...

2019-03-10 20:43:48 226

原创 Java基础:线程池

什么是线程池? 答:一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行的任务的队列。 线程池的作用 答: 减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。 Java中的...

2019-03-09 23:58:27 225

原创 线程中的死锁、数据库中的锁、避免死锁的算法

死锁描述死锁是指两个以上的线程永远阻塞的情况,这种情况产生至少需要两个以上的线程和两个以上的资源。 系统发生死锁现象不仅浪费大量的系统资源,还会导致整个系统崩溃,带来灾难性后果。 死锁满足的条件: 互斥条件:一个资源每次只能被一个线程使用。 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不可剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。 ...

2019-03-09 23:02:28 649

原创 Java基础:设计模式

java的设计模式大体上分为三大类创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设计模式遵循的原则有6...

2019-03-09 18:57:52 2242 2

原创 问题:Java中,char型变量中能不能存储一个中文汉字,为什么?

为什么?char型变量是用来存储Unicode编码的字符的,unicode 编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字。 不过,如果某个特殊的汉字没有被包含在 unicode 编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。 说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。 package java基础题目; ...

2019-03-07 23:30:55 3566 4

原创 Java基础:数据库

数据库面试总结 什么是存储过程?有哪些优缺点? 答:存储过程就像是编程语言中的函数一样,封装了我们的代码(PLSQL,T-SQL) 例如: -------------创建名为GetUserAccount的存储过程----------------create Procedure GetUserAccountasselect * from UserA...

2019-03-06 23:12:19 321

原创 C语言——实现栈

一、代码 //栈的建立;#include <stdio.h>#include <stdlib.h>#define MAX 10 //定义最大栈容量//定义栈类型 typedef struct{ int data[MAX]; int top;}SeqStack;//栈的初始化SeqStack SeqStackInit(){ ...

2019-03-05 21:39:50 211

原创 C语言——实现链栈

一、代码 //栈的链式存储结构//链栈的类型定义#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; /*数据域*/ struct node *next; /*指针域*/}LinkStack;/*链栈结点类型*///判别空栈int StackEmpty(LinkSta...

2019-03-05 18:57:03 302

原创 C语言实现链式队列

一、代码 #include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 15typedef struct { int data[N]; //队列数组; int head; //队头; int tail; //队尾;}SeqQueue;SeqQueue *SeqQ...

2019-03-05 18:48:41 1308 1

原创 Java基础:多线程、并发

Java多线程面试问题 进程和线程之间有什么不同? 答:一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。 多线程编程的好处是什么? 答:在多线程程序中,多个...

2019-03-05 13:55:57 268

原创 C语言实现贪心算法——装箱问题

一、代码 //装箱问题;#include<stdio.h>#include<malloc.h>#define V 10 //一个箱子所能装的最大体积;//物品信息;typedef struct { int gnum; //物品编号; int gv; //物品体积;}Goods;//物品链;typedef struct Node...

2019-03-04 18:53:04 3871

原创 Java基础:集合

集合概括图问题解答List,Set,Map是否继承自Collection接口?【基础】 答:List,Set 是;Map 不是。 你所知道的集合类都有哪些?主要方法?【基础】 答:最常用的集合类是List 和Map。List 的具体实现包括ArrayList 和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List 适用于按数值索引...

2019-03-04 17:56:39 344

原创 Java基础:对象、继承、接口、嵌入、异常类、Final关键字、static关键字、String、​​​​​​​Calendar

对象的初始化非静态对象的初始化: 在创建对象时,对象所在类的所有成员会首先进行初始化 基本类型:int型,会初始化为 0 如果为对象,这些对象会按顺序初始化 在所有类成员初始化完成后,才调用本类的构造方法创建对象 构造方法的作用就是初始化 静态对象初始化: 程序中主类的静态变量会在 main 方法执行前初始化 不仅第一次创建对象时,类中所有的静态变量都初始化,...

2019-03-02 21:21:15 238

空空如也

空空如也

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

TA关注的人

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