自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYSQL索引以及索引的底层原理

1、索引分类索引:索引是创建在表上,是对数据库中的一列或者多列的值进行排序的一种结果。优点:提高查询的效率缺点:索引并非是越多越好,过多的索引会导致CPU使用居高不下,由于数据的改动引起索引文件的改动,过多的磁盘IO造成CPU负载过高。普通索引:没有任何的限制条件,可以给任何类型的字段创建普通索引唯一性索引:使用unqiue修饰的字段,值不会重复,主键索引隶属唯一性索引主键...

2019-04-04 16:48:18 467

原创 MYSQL的基本操作

1、创建表 在创建表之前要先选择数据库,在选择的数据库下创建表。选择数据库在上一篇博文中已经提及到(use 数据库名)。create table table_name(属性名 属性类型[完整性约束], 属性名 属性类型[完整性约束], ...

2019-03-30 14:48:08 362

原创 MYSQL基本介绍

MYSQL了解:MYSQL采用C/S的客户端服务器模型,客户端通过连接服务器进行数据的增删改查操作;MYSQL服务段模型采用IO复用+线程池来定义。SQL语句划分:DDL(data definition language):数据定义语言,定义了数据库、表、列、索引等数据库对象的定义。常用的关键字:create、drop、alter等。DML(data manipulation lang...

2019-03-30 14:02:39 344

原创 NIO模型(二)

一、NIO中的BufferBuffer初始化的方式:ByteBuffer.allocate(int size) //开辟指定大小ByteBuffer.warp(byte[]) //通过数组初始化存取元素:(1)put:添加元素 先判断position是否超过了limit,否则指针position向前移一位,将要添加的字节存入position所指的数组的...

2019-03-19 16:29:27 150

原创 NIO模型(一)

NIO:同步非阻塞IO,它是基于IO复用实现的,在JDK1.4后提供。在NIO中有以下几个核心的组成部分:缓存区(Buffer)、通道(Channel)、选择器(Selector)。一、缓冲区(Buffer) 缓冲区是包在一个对象内的基本数据数组。所有的缓冲区都具有四个属性来提供关于其包含的数据元素的信息。分别是:容量、上界、位置和标记。在NIO中,所有的缓冲区类型均继承于抽象...

2019-03-02 14:59:09 172

原创 BIO+多线程实现BIO模型

BIO+多线程实现BIO模型服务端public class BIOServer{ //默认的端口号 private static int DEFAULT_PORT = 12345; //单例的ServerSocket private static ServerSocket server; //根据传入参数设置监听端口,如果没有参数调用以下方法并使用...

2019-03-01 17:24:58 981

翻译 Java中的IO模型

一、同步、异步、阻塞与非阻塞 从内核角度看I/O操作分为两步:用户层API调用;内核层完成系统调用(发起I/O请求)。所以同步、异步针对的是用户的API的调用;阻塞、非阻塞针对的是IO请求。 同步指的是函数完成之前会一直等待;阻塞指的是系统调用的时候进程会被设置为sleep状态,直到等待的数据发生 同步与异步: 实际上同步...

2019-03-01 16:16:27 615

原创 TCP的三次握手与四次挥手

三次握手与四次挥手TCP三次握手的流程:第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=x,并将数据包发送给服务端,客户端进入SYN_SENT状态,等待服务器端确认第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给客户端以确认连接请求,服务器端进...

2019-02-26 17:32:04 203

原创 UDP与TCP

一、TCP/IP的结构体系从上往下依次是:应用层、传输层、网际层、网络接口层应用层:为网络中的各种网络应用提供服务,在这一层的协议主要有FTP(文件传输协议,端口号为21,用来传输文件)、SMTP(简单邮件传输协议,端口号为25,用来发送邮件)、HTTP(超文本传输协议,端口号为80)、Telent...传输层:在应用程序的端到端的连接和可靠传输,在这一层的协议主要有TCP、UDP...

2019-02-26 17:13:16 232

转载 IDEA常用快捷键说明

IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F...

2019-01-18 21:14:29 155

转载 volatile关键字

       volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键...

2019-01-16 10:55:04 139

原创 多线程基础

一、什么叫做线程与进程进程:进程是操作系统进行资源分配的最小单位。例如:IO资源、内存资源线程:线程是操作系统进行资源调度的单位。线程存在于进程中,一个进程可以对应多个线程;进程与线程之间相互隔离;一个进程的崩溃不会影响其他进程的崩溃,但是一个线程的崩溃可能引起其他线程的崩溃,因此,进程的健壮性要比线程好内存资源占比:创建进程意味着开辟内存空间、同一个进程下的线程共享部分空间,开辟...

2019-01-16 09:49:46 151

原创 LinkedHashMap源码解读

1、继承关系public class LinkedHashMap<K,V>extends HashMap<K,V>implements Map<K,V>继承了HashMap类,实现了Map接口,即LinkedHashMap具有HashMap的特点。2、基本属性private static final long serialVersionU...

2018-12-04 21:40:52 215

原创 Java集合框架——大量数据处理操作练习题

1、用HashTable和HashMap测试插入是10万个数据的速度Hashtable<Integer,Object> hashtable=new Hashtable<>();long l = System.currentTimeMillis();//起始时间Object o=new Object();Random random=new Random(); ...

2018-12-04 19:49:52 683

原创 HashTable的源码解读以及HashMap与HashTable的异同点

我们首先说一下有关HashTable的相关内容,HashMap的相关内容可以在上一篇博客中找到。。。1、HashTable的特点1)是以键值对的形式存在的2)底层数据结构是数组+链表3)key与value均不能为null4)key 不可以重复,value可以重复5)不能保证插入的顺序6)线程安全2、HashTable源码解读1)继承关系public cla...

2018-11-23 17:41:10 166

原创 Java集合框架——HashMap

Map接口下常见的实现类有:HashMap、LinkedHashMap、HashTable、TreeMap,今天我们主要看一下HashMap的内容。一、HashMap的特点1)数据是以键值对的形式存储2)key不能重复,value可以重复3)key只能有一个为null,value可以有多个为null4)存储数据不能保证有序5)底层是由数组和链表实现的二、HashMap的...

2018-11-22 15:11:52 186

翻译 ArrayList与LinkedList的区别

ArrayList适应于查询量大,修改频率较低的场景LinkedList适应于增删改量较大的场景代码展示: ArrayList list1 = new ArrayList(); long l = System.currentTimeMillis();//起始时间 Random random = new Random(); ...

2018-11-20 16:07:12 113

翻译 Java集合框架——LinkedList

LinkedList表示的是一个链表的操作类。1、特点1)底层实现是双向链表2)数据可以重复3)可以存储多个null值4)插入数据有序5)增加、删除效率高2、LinkedList源码解读1)继承关系public class LinkedList<E> extends AbstractSequentialList<E>    implem...

2018-11-20 16:06:48 144

翻译 Java集合框架——ArrayList

List接口下常用的实现类——ArrayList1、特点1)底层实现是数组2)数据可重复3)可以有多个null4)存储的是单个值5)保证插入的数据有序6)查询、修改效率高;删除、增加效率低2、常用实现方法int size();//获取存储数据的个数boolean isEmpty();//判断集合是否为空boolean contains(Object o)...

2018-11-14 13:20:00 193

翻译 java集合框架(一)

Java集合框架的简单介绍       Java集合框架是java.util中的集合类。接口、接口的实现和集合算法是Java集合框架主要的三个组成部分。在Java中,集合类用来存放对象,在使用时通过实例化集合类得到集合对象,而集合对象则代表某种方式组合到一起的一组对象,这组对象是通过引用集合对象来进行操作的。Java集合相当于一个容器,里面包含着一组对象。Java集合框架除了提供可变容器特性之...

2018-11-14 10:49:18 184

翻译 成员变量和静态变量

 成员分两种:   1、成员变量。(数据共享时静态化)      该成员变量的数据是否是所有对象都一样:      如果是,那么该变量需要被静态修饰,因为是共享的数据。       如果不是,那么就说这是对象的特有数据,要存储到对象中。    2、成员函数。(方法中没有调用特有数据时就定义成静态)      如果判断成员函数是否需要被静态修饰呢?      只要参考...

2018-10-08 20:22:58 572

翻译 java的重写与重载

1、重载(Overloading)    方法的重载一定只是参数的类型或个数不同,而方法的返回值相同    可以用相同的方法名但不同的参数列表来定义方法(参数表中参数的数量、类型或次序有差异)的重载。两个规则适用于重载方法:1)调用语句的参数表必须有足够的不同,以至于允许区分出正确的方法被调用。正常的拓展晋升(如单精度类型float到双精度类型double)可能被应用,但是这样会导...

2018-09-30 19:13:05 230

翻译 java异常

一、异常的分类Throwable类有两个重要的子类:Error和Exception,Exception又分为编译期异常和运行期异常。所有的异常都是Exception的子类,所有的异常都可以使用Exception来接收。java中有两种异常处理机制:捕获处理异常和声明抛出异常。与异常有关的关键字有try,catch,throw,throws,finally。通过try,catch,fin...

2018-09-22 19:57:51 501

翻译 有关Object类的方法

      在java中,如果不用关键字extends显式地指出类的父类,那么父类就是Object类。所有的类都有一个公共的父类Object。Object类是java中唯一一个没有父类的类,是java最顶层的父类。(1)equals()方法    Object类提供的equals()方法默认是比较地址的,并不能对内容进行比较,所以自定义的类如果要比较内容需要覆盖Object类的equals...

2018-09-12 17:35:04 119

翻译 直接插入排序算法(从后往前找到合适的位置后插入)

基本思想:每一步将一个待排序的记录,按其顺序码大小插入到前面已经排序的子序列的合适位置(从后向前找到合适的位置后),直到全部插入顺序完为止。分析:34  4  56  17  90  65以第一个数34为基准(i是下标)第一轮i=1:34和4比较,4比34小,将34往后移,4(称作操作数)存在另一个变量temp中34  34  56  17  90  654  34  56...

2018-09-03 20:20:14 9644

翻译 选择排序算法

每一趟从待排序的数据元素中选出最小(或最大的)一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,选择排序是最不稳定的排序算法。分析:34,4,56,17,90,65每次置换一个位置 34和4比较,4小,4再和后面的数比较,4最小放在最前面,都比完之后再4,34,56,17,90,65  第一轮 5次再设置34是最小的4,17,56,34,90,65 ...

2018-09-03 20:18:47 122

翻译 顺时针打印矩阵;定义一个二维数组,输入一个数字num,在该数组中查找是否包含这个数字num,数组要求从上到下递增有序,从左向右递增有序)

1、顺时针打印矩阵public class Exerse3{public static void printMatrixIncircle(int[][] nArr,int rows,int columns,int nStart){            // nEndX是最右一列列号            int nEndX = columns - 1 - nStart;       ...

2018-09-03 11:04:53 487

原创 输入三个正整数,输出这三个数字中最大值;输入一个正整数,判断它是不是一个素数;求1-1/2 +1/3 -1/4;求两个数m和n的最大公约数;输入一个年份,判断该年是不是闰年,进行输出闰年操作

1、输入三个正整数(不超过int类型表示的最大范围),输出这三个数字中最大值。public class MaxNum{public static void main(String[] args){    int a=4;    int b=2;    int c=8;    System.out.print("最大的是"+((a>b?a:b)>c?(a>b?a:b):...

2018-09-03 09:02:51 1141

原创 1.定义一个初始值是2的一维整型数组,用户输入一个值,将该值插入到数组恰当的位置2.定义一个整型数组arr= {1,2,2,3,4,4,8,8,9};里面还有重复项,将该数组中重复出现的整数只保留一个

import java.util.Arrays;import java.util.Scanner;//第一题//定义一个初始值是2的一维整型数组,用户输入一个值,// 将该值插入到数组恰当的位置(该数组是按照从小到大进行排序的)。public class Exerse1{    public static int[] toInsertNum(int[] arr,int a,int p...

2018-09-03 09:02:39 3475

原创 有关java类的几个练习

1、定义一个类Book,具有属性:书名,价格。功能:设置和获取书的价格,书的名字package Test;import java.util.Arrays;public class Book {    private String name;    private double price;    void get(){        System.out.print("书名:"+n...

2018-08-31 09:27:01 356

翻译 n是由键盘输入,例如:n=5;  S=a+aa+aaa+aaaa+aaaaa...java

1.将100~200之间的素数输出2. 输入两个正整数m和n,求其最大公约数和最小公倍数3. n是由键盘输入,例如:n=5;  S=a+aa+aaa+aaaa+aaaaa; 4. 输出所有的水仙花数,所谓水仙花数始值一个3位数,其各种数字立方和等于该本身,例如:153是一个水仙花数。//第1题public class TestWork{  public static void ...

2018-08-31 09:26:36 923

原创 给定一个数字字符串,将字符串中的数字转化为整型;数组中的有效个数(递归) java

1、给定一个数字字符串,将字符串中的数字转化为整型public class Exerse1{    public static int stringToInt(String str){        char[] arr=str.toCharArray();//将字符串转化为数组        int i=0;        for(;i<arr.length;i++){   ...

2018-08-28 09:08:49 1659

原创 循环报数游戏,有n个人,每个人编号从1开始,因此得到编号到n。从1到3报数,报3的退出游戏,得到最后获胜人的编号;移除数组中重复的数据java

1、循环报数游戏,有n个人,每个人编号从1开始,因此得到编号到n。从1到3报数,报3的退出游戏,得到最后获胜人的编号public class Exerse1{    public static int circleDelNum(int[] arr,int n){        int size=arr.length;//保存当前的有效数字个数        int count=0;//报...

2018-08-27 15:09:23 1542

原创 给出一组数组,将奇数放在前面,偶数放在后面;二分查找;输出100到200间的素数;用递归去实现1+2+...+100;斐波那契数列java

1、给出一组数组,将奇数放在前面,偶数放在后面public class Exerse1{    public static int[] toChang(int[] arr){        int left=0;        int temp=0;        int right=arr.length-1;        while(left<right){       ...

2018-08-26 20:01:04 575

原创 冒泡排序;统计一个字符串中某一个字符出现的次数;将字符串逆序排列;在空格处插入两个#号;清除字符串中的某个字符 java

1、数组冒泡排序public class Exerse1{    public static void arraySort(int[] arr){        for(int i=0;i<arr.length;i++)//i控制冒泡的次数            for(int j=0;j<arr.length-i-1;j++){       // arr.length-1-...

2018-08-21 12:23:38 212

原创 求阶乘之和

public class Exerse1{public static void main(String[] args){    int i=1;int num=0;do{    int j=1;    int jc=1;    while(j<=i){     jc*=j;     j++;    }    num+=jc;i++;}whi...

2018-08-04 16:32:49 334

原创 三角形

    *   ***  ***** ****************public class Exerse1{    public static void main(String[] args){        for(int i=1;i<=5;i++){            for(int j=i;j<5;j++){                System...

2018-08-03 17:06:02 246

原创 打印三角

//     *//    **//   ***//  ****// *****public class Exerse1{    public static void main(String[] args){        for(int i=1;i<=5;i++){            for(int j=5;j>0;j--){                i...

2018-08-03 16:52:28 154

原创 九九乘法表

//第一种方法public class Exerse2{    public static void main(String[] args){        for(int i=1;i<=9;i++){            for(int j=1;j<=i;j++){                System.out.print(j+"*"+i+"="+(i*j)+"\...

2018-08-03 16:36:45 256

原创 求次幂 2^10

求次幂2^10法一(循环)public class Exerse1{public static int power(int val,int n){    int a=1;    for(int i=0;i<=n;i++){        a=val*a;    }    return a;}public static void  main(String[] args){...

2018-08-03 09:46:20 480

空空如也

空空如也

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

TA关注的人

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