- 博客(46)
- 收藏
- 关注
原创 MYSQL索引以及索引的底层原理
1、索引分类索引:索引是创建在表上,是对数据库中的一列或者多列的值进行排序的一种结果。优点:提高查询的效率缺点:索引并非是越多越好,过多的索引会导致CPU使用居高不下,由于数据的改动引起索引文件的改动,过多的磁盘IO造成CPU负载过高。普通索引:没有任何的限制条件,可以给任何类型的字段创建普通索引唯一性索引:使用unqiue修饰的字段,值不会重复,主键索引隶属唯一性索引主键...
2019-04-04 16:48:18
542
原创 MYSQL的基本操作
1、创建表 在创建表之前要先选择数据库,在选择的数据库下创建表。选择数据库在上一篇博文中已经提及到(use 数据库名)。create table table_name(属性名 属性类型[完整性约束], 属性名 属性类型[完整性约束], ...
2019-03-30 14:48:08
423
原创 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
378
原创 NIO模型(二)
一、NIO中的BufferBuffer初始化的方式:ByteBuffer.allocate(int size) //开辟指定大小ByteBuffer.warp(byte[]) //通过数组初始化存取元素:(1)put:添加元素 先判断position是否超过了limit,否则指针position向前移一位,将要添加的字节存入position所指的数组的...
2019-03-19 16:29:27
186
原创 NIO模型(一)
NIO:同步非阻塞IO,它是基于IO复用实现的,在JDK1.4后提供。在NIO中有以下几个核心的组成部分:缓存区(Buffer)、通道(Channel)、选择器(Selector)。一、缓冲区(Buffer) 缓冲区是包在一个对象内的基本数据数组。所有的缓冲区都具有四个属性来提供关于其包含的数据元素的信息。分别是:容量、上界、位置和标记。在NIO中,所有的缓冲区类型均继承于抽象...
2019-03-02 14:59:09
241
原创 BIO+多线程实现BIO模型
BIO+多线程实现BIO模型服务端public class BIOServer{ //默认的端口号 private static int DEFAULT_PORT = 12345; //单例的ServerSocket private static ServerSocket server; //根据传入参数设置监听端口,如果没有参数调用以下方法并使用...
2019-03-01 17:24:58
1037
翻译 Java中的IO模型
一、同步、异步、阻塞与非阻塞 从内核角度看I/O操作分为两步:用户层API调用;内核层完成系统调用(发起I/O请求)。所以同步、异步针对的是用户的API的调用;阻塞、非阻塞针对的是IO请求。 同步指的是函数完成之前会一直等待;阻塞指的是系统调用的时候进程会被设置为sleep状态,直到等待的数据发生 同步与异步: 实际上同步...
2019-03-01 16:16:27
694
原创 TCP的三次握手与四次挥手
三次握手与四次挥手TCP三次握手的流程:第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=x,并将数据包发送给服务端,客户端进入SYN_SENT状态,等待服务器端确认第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给客户端以确认连接请求,服务器端进...
2019-02-26 17:32:04
266
原创 UDP与TCP
一、TCP/IP的结构体系从上往下依次是:应用层、传输层、网际层、网络接口层应用层:为网络中的各种网络应用提供服务,在这一层的协议主要有FTP(文件传输协议,端口号为21,用来传输文件)、SMTP(简单邮件传输协议,端口号为25,用来发送邮件)、HTTP(超文本传输协议,端口号为80)、Telent...传输层:在应用程序的端到端的连接和可靠传输,在这一层的协议主要有TCP、UDP...
2019-02-26 17:13:16
268
转载 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
193
转载 volatile关键字
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键...
2019-01-16 10:55:04
174
原创 多线程基础
一、什么叫做线程与进程进程:进程是操作系统进行资源分配的最小单位。例如:IO资源、内存资源线程:线程是操作系统进行资源调度的单位。线程存在于进程中,一个进程可以对应多个线程;进程与线程之间相互隔离;一个进程的崩溃不会影响其他进程的崩溃,但是一个线程的崩溃可能引起其他线程的崩溃,因此,进程的健壮性要比线程好内存资源占比:创建进程意味着开辟内存空间、同一个进程下的线程共享部分空间,开辟...
2019-01-16 09:49:46
197
原创 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
320
原创 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
752
原创 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
203
原创 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
246
翻译 ArrayList与LinkedList的区别
ArrayList适应于查询量大,修改频率较低的场景LinkedList适应于增删改量较大的场景代码展示: ArrayList list1 = new ArrayList(); long l = System.currentTimeMillis();//起始时间 Random random = new Random(); ...
2018-11-20 16:07:12
138
翻译 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
178
翻译 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
224
翻译 java集合框架(一)
Java集合框架的简单介绍 Java集合框架是java.util中的集合类。接口、接口的实现和集合算法是Java集合框架主要的三个组成部分。在Java中,集合类用来存放对象,在使用时通过实例化集合类得到集合对象,而集合对象则代表某种方式组合到一起的一组对象,这组对象是通过引用集合对象来进行操作的。Java集合相当于一个容器,里面包含着一组对象。Java集合框架除了提供可变容器特性之...
2018-11-14 10:49:18
217
翻译 成员变量和静态变量
成员分两种: 1、成员变量。(数据共享时静态化) 该成员变量的数据是否是所有对象都一样: 如果是,那么该变量需要被静态修饰,因为是共享的数据。 如果不是,那么就说这是对象的特有数据,要存储到对象中。 2、成员函数。(方法中没有调用特有数据时就定义成静态) 如果判断成员函数是否需要被静态修饰呢? 只要参考...
2018-10-08 20:22:58
628
翻译 java的重写与重载
1、重载(Overloading) 方法的重载一定只是参数的类型或个数不同,而方法的返回值相同 可以用相同的方法名但不同的参数列表来定义方法(参数表中参数的数量、类型或次序有差异)的重载。两个规则适用于重载方法:1)调用语句的参数表必须有足够的不同,以至于允许区分出正确的方法被调用。正常的拓展晋升(如单精度类型float到双精度类型double)可能被应用,但是这样会导...
2018-09-30 19:13:05
273
翻译 java异常
一、异常的分类Throwable类有两个重要的子类:Error和Exception,Exception又分为编译期异常和运行期异常。所有的异常都是Exception的子类,所有的异常都可以使用Exception来接收。java中有两种异常处理机制:捕获处理异常和声明抛出异常。与异常有关的关键字有try,catch,throw,throws,finally。通过try,catch,fin...
2018-09-22 19:57:51
588
翻译 有关Object类的方法
在java中,如果不用关键字extends显式地指出类的父类,那么父类就是Object类。所有的类都有一个公共的父类Object。Object类是java中唯一一个没有父类的类,是java最顶层的父类。(1)equals()方法 Object类提供的equals()方法默认是比较地址的,并不能对内容进行比较,所以自定义的类如果要比较内容需要覆盖Object类的equals...
2018-09-12 17:35:04
150
翻译 直接插入排序算法(从后往前找到合适的位置后插入)
基本思想:每一步将一个待排序的记录,按其顺序码大小插入到前面已经排序的子序列的合适位置(从后向前找到合适的位置后),直到全部插入顺序完为止。分析: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
9786
翻译 选择排序算法
每一趟从待排序的数据元素中选出最小(或最大的)一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,选择排序是最不稳定的排序算法。分析: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
151
翻译 顺时针打印矩阵;定义一个二维数组,输入一个数字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
554
原创 输入三个正整数,输出这三个数字中最大值;输入一个正整数,判断它是不是一个素数;求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
1221
原创 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
3548
原创 有关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
400
翻译 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
1013
原创 给定一个数字字符串,将字符串中的数字转化为整型;数组中的有效个数(递归) 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
1726
原创 循环报数游戏,有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
1618
原创 给出一组数组,将奇数放在前面,偶数放在后面;二分查找;输出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
641
原创 冒泡排序;统计一个字符串中某一个字符出现的次数;将字符串逆序排列;在空格处插入两个#号;清除字符串中的某个字符 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
243
原创 求阶乘之和
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
372
原创 三角形
* *** ***** ****************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
274
原创 打印三角
// *// **// ***// ****// *****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
187
原创 九九乘法表
//第一种方法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
283
原创 求次幂 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
564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人