- 博客(89)
- 收藏
- 关注
原创 字符串去标点(Java正则替换标点)
编一个程序,从 从一个输入的字符串中去掉标点符号。要求输入到程序的字符串必须含有标点符号,输出结果则是去掉标点符号后的 string 对象。示例:输入:ab,acd-+,sss1.!+输出:abacdsss文末附网上找到的一些关于正则表达式匹配字符的一些资源,并附资源链接import java.io.*;import java.util.*;import java.text.*;i...
2020-04-01 14:59:27
1752
原创 二叉树的链式结构
package DS;//二叉树的链式结构及实现import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;public class TextBinaryTree { class TreeNode { char value; ...
2020-04-01 14:41:05
168
原创 归并排序的递归及非递归实现
归并排序总的思想:将待排序数组划分为一小段,一小段的”小数组“,刚开始“小数组”长度为1 ,比较时,都是这些“小数组”之间进行比较,第一次比较完成之后,“小数组”长度*2,个数相应减少,在进行比较,每次比较完后,单个的“小数组”都是有序的了,直到“小数组”长度等于待排序数组,此时,整个待排序数组就有序了。归并排序完成package DS;import java.util.Arrays;im...
2019-09-05 01:55:16
173
原创 将给定单链表比给定数小的排在前,大的排在后
给定一个单向链表和一个整数m,将链表中小于等于m的节点移到大于m的节点之前,要求两部分中的节点各自保持原有的先后顺序这题没有一点难度,怪自己有点弟弟,当时卡在一个小问题上新建俩个头Max ,Min,比m小的放在Min后,大的放在Max后,而后把Max接在Min的后面即可,这里要把自己建的俩个头跳过,还有Max的尾巴一定要记得置为null,否则会成环。import java.io.*;im...
2019-09-05 01:40:53
497
原创 表的内外连接
表的连接大致可分为内连和外连内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选。语法:select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;现在咋上面这俩张表中要找SMITH的名称和部门,则用内连接写法为:select ename, dname from EMP inner join DEPT on EMP.deptno=D...
2019-09-05 00:23:09
206
原创 表的主,外键及唯一键
主键:主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主 键所在的列通常是整数类型。主键约束:主键对应的字段中不能重复,一旦重复,操作失败。创建表的时候直接在字段上指定主键,在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主 键,可以使用复合主键。mysql> cre...
2019-09-04 23:46:06
1469
原创 MySQL数据库基本数据类型
废话不多说直接上图,下图介绍了MySQL的数据类型分类,以及各个数据类型对应的表示范围,表示的意义对于数值类型中的int类详细说明明一下具体的表示范围,在来一张图tinyint类型在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的bit类型基本语法:bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。...
2019-09-04 23:25:04
797
原创 反射整理
获取包名和类名:System.out.println(cls.getPackage().getName());取得父类的Class对象: public native Class<? super T> getSuperclass();取得实现的父接口:public Class<?>[] getInterfaces()反射实例化对象Class<?> cls ...
2019-08-25 21:50:07
117
原创 Redis Like
项目背景: Redis是一款高效的内存数据库,它有别于传统的关系型数据库,海量数据存取快(传统关系型数据库需要有IO操作,很影响速度),且Redis支持的数据类型比memcached更多。好,既然Redis有这么多的好处,那我能不能自己简单实现一下这么强大的Redis呢?也因此,我自己简单实现了一下Redis服务端。项目介绍:简单实现了数据的基本存取操作。可以允许多个客户端连接,彼此互不相...
2019-08-21 10:29:15
1012
转载 Redis内存数据库的简介
本文参考了https://blog.csdn.net/weixin_43224539/article/details/98735629redis是一个开源的底层第用ANSI C语言编写的key-value型存储数据库,可用于缓存,事件发布订阅,高速队列等场景redis支持数据类型redis支持丰富的数据类型,包括string(字符串)、list(链表)、set(集合)、zset(sorted...
2019-08-21 09:22:12
6391
原创 多线程之等待与唤醒机制
等待与唤醒机制(线程间通信方式之一)1. synchronized的wait/notify 调用notify后,将等待队列的线程唤醒值同步队列的末尾排队获取锁notify线程直到将自己的同步代码块执行完后,才会释放锁。任意一个monitor有一个同步队列和一个等待队列(生产,消费者的wait都进入一个队列)只有一个等待队列时,唤醒所有线程(notifyall)一定会唤醒不该唤醒的线程...
2019-08-12 15:13:37
304
原创 多线程及线程的同步与锁死
Java中的多线程实现方式:继承Thread实现Runnable、Callable线程池(推荐)Java中线程分为俩类:用户线程:用户创建的默认都是用户线程,包括主线程。可以使用setDeamn()方法将用户线程置为守护线程。守护线程:只有当当前的JVM进程中最后一个用户线程终止,守护线程会随着JVM一起终止。GC就是一个典型的守护线程多线程的常用方法sleep()线程...
2019-08-12 14:36:06
235
原创 走进JVM
首先,需要明白JVM是什么?JVM(Java Virtual Machine的简称。意为Java虚拟机。).是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪 JVM是一台被定制过的现实当中不存在的计算机可以说JVM是Java实现跨平台的核心,也是整个Java的核心之一,是Java程序运行的必备条件,下面就描述介绍一下有关JVM的若干东西。JVM...
2019-08-07 15:48:43
162
1
原创 二叉树的顺序结构及实现以及堆排序
二叉树的顺序结构及实现,其核心是public void AdjustDown(int root, int len) 方法;TextHeap 类中的很多其他方法基本都是通过调用此方法实现的,包括堆排序也是通过调用AdjustDown方法实现的。当然initHeap()方法同样也是比较重要的,第一次调用此方法对堆进行初始化,创建一个大根堆。之后才会有其他方法,此结构的实现都是在这是个大根堆的基础上进...
2019-08-06 14:36:59
189
原创 简单解析 兼顾高效与安全的ConcyrrentHashmap
我们直到?HashTable虽是线程安全的但是它锁住了整张hash表,所以性能很低,读读都互斥。那么ConcyrrentHashmap时如何在兼顾安全性的同时有实现高效性的呢?首先是JDK1.7中ConcyrrentHashmap的实现原理。相对于线程安全的Hashtable来说,ConcyrrentHashmap的性能更高,原因是什么呢?在JDK1.7中ConcyrrentHashmap...
2019-08-06 13:51:24
424
原创 递归法合并俩个单链表
原题如下:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。我觉得解题思路用这一张图就可以表达的很清楚了。我的代码(非递归的,递归的在下面)/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this....
2019-07-31 18:12:40
726
原创 递归法反转单链表
最近在leetcode看到一道反转单链表的题,题目难度并不大,但是提交成功之后,看了官方给的递归版本的答案,觉得有点意思。以下是题目和代码,和大家分享一下下图是题目模板以及我自己写的代码(迭代法,和官方给的比起来就有点捞了)以下是官方给的迭代法以及递归的标准答案...
2019-07-30 13:29:35
1222
原创 TCP协议的十大特点
TCP协议(“传输控制协议(Transmission Control Protocol”). )是当今使用最广泛的协议之一,首先我们要明确TCP协议是一个(1)有连接(2)可靠传输(3)面向字节流的一个协议。现在就来细数以下他具有的几大特点。1. 确认应答机制这是TCP协议可靠性的核心机制,接收方在收到发送方发出的数据时返回一个ACK,表示我已经收到数据了,然后,发送方在接受到接收方发送的AC...
2019-07-25 16:06:49
3456
原创 浅谈HTTP
HTTP协议:超文本传输协议。它是一个应用层的协议,还有类似FTP(文件传输协议),SMTP(简单邮件传输协议)等。它是一个客户端和服务器端的一个请求和应答的标准。请求:首行: [方法] + [url] + [版本](1)方法:其中GET和Post方法是最常用的(2)url:我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位...
2019-07-24 18:25:52
303
转载 HTTP状态码大全
http状态码有什么用?http状态码的核心作用是Web Server服务器用来告诉客户端,当前的网页请求发生了什么事,或者说当前Web服务器的响应状态。所以HTTP状态码常用来判断和分析当前Web服务器的运行状况。作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手。好了,下面就让我们来了解一下比...
2019-07-24 18:14:38
181
原创 将字母按照拼音9键的规则转变为对应的数字,并按照电话号码xxx-xxxx形式组成输出
分析:由上述描述可知,可能出现的字符只能是ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,因此事先定义一个String symbol保存这些字符,number及为对应规则,例如:ABC在上图中对应为2,则在symbol中ABC对应的下标,在number中刚好都是2(symbol中ABC对应的下标为0,1,2.而number中0,1,2下标对应的内容都是2)然后...
2019-07-24 12:11:31
2924
1
转载 深入浅出 TCP/IP 协议栈
今天看到一篇很棒的文章,手动转载一下,以下时原链接转自 @一像素 TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系...
2019-07-22 14:17:10
114
原创 Java集合类
HashMap、TreeMap、Hashtable的关系与区别a.这三个类都是Map接口下的常用子类,Hashtable基于哈希表实现,TreeMap基于红黑树实现,HashMap基于哈希表+红黑树(JDK1.8之后,JDK1.8基于哈希表)b.关于null,HashMap允许key、value为null.Hashtable key与value均不为null.TreeMap只允许va...
2019-07-21 14:16:25
95
原创 心情不错,写个带头循环单链表
package Interface;//带头循环单链表public interface ICLinked { //头插法 void addFirst(int data); //尾插法 void addLast(int data); //任意位置插入,第一个数据节点为0号下标 boolean addindex(int index,int data)...
2019-07-21 14:02:44
99
转载 sqlite的系统表sqlite_master
SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。 SQLITE_MASTER 表看起来如下:CREATE TABLE sqlite_master (type TEXT,name TEXT,tbl_name TEXT,rootpage...
2019-07-21 13:51:30
172
原创 心情不错,写个双向不循环单链表
public interface IDoubleLinked { //头插法 void addFirst(int data); //尾插法 void addLast(int data); //任意位置插入,第一个数据节点为0号下标 boolean addindex(int index, int data); //查找是否包含关键字ke...
2019-07-20 22:10:10
114
原创 心情不错,写个不带头单向链表
package Interface;public interface ILinked { // 1、无头单向非循环链表实现 //头插法 void addFirst(int data); //尾插法 void addLast(int data); //任意位置插入,第一个数据节点为0号下标 b...
2019-07-20 21:55:22
110
原创 Java多线程之生产者消费者模型
import java.util.LinkedList;import java.util.Queue;import java.util.concurrent.atomic.AtomicInteger;/** * 消费者: * 1. 消费商品 * 2. 从容器中取出商品 * 3. 如果容器为空,通知生产者生产 */class Customer implements Runnabl...
2019-07-18 01:20:23
227
原创 快速排序的递归及非递归实现以及优化
import java.util.Arrays;import java.util.Random;import java.util.Stack;//当待排序序列为有序时,快排退化为冒泡排序。class MyQuickSort{ //一趟快排 //以low号下标为基准的一趟快排,,排完之后基准左边比他小,右边比他大 private int FindPartion(in...
2019-07-18 01:19:34
229
原创 公司年会抽奖,Java代码求出N人都不中的概率
今年公司年会的奖品特别给力,但获奖的规矩却很奇葩:首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有字条加入完毕,每人从箱中取一个字条;如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!”现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖?此题用到了错排公式,在以下代码的注释里,我简要的概述了该公式的递推过程,想详细了解的可以自行去百度import ja...
2019-07-09 23:58:20
807
2
原创 BeanCopy给定俩个类有若干属性,将其中一个的属性值拷贝给另外一个
BeanCopy给定俩个类Person,Child有若干属性,将其中Person的属性值拷贝给Child,若Child中没有Person中的属性(例如:Person中有skill属性,而Child没有),则不予理睬。import java.lang.reflect.Field;import java.util.Date;class BeanCopy{ public static v...
2019-04-27 14:21:23
468
原创 Java之反射调用普通方法
通过反射我们可以调用类种属性,构造,以及普通方法和父类信息。以下我主要说一下反射调用普通方法。在Class类中有以下俩种取得类中普通方法的方法:取得全部普通方法:public Method[] getMethods() throws SecurityException取得指定普通方法:public Method getMethod(String name, Class<?>...
2019-04-20 18:23:25
4876
原创 java反射VS工厂模式
传统的工厂类每新增加一个子类时,都需要去修改工厂类,让它去产生一个新增子类的对象。这样就非常麻烦。解决此问题的关键在于实例化对象的方式new上,如果使用反射去实例化对象就可以很好的解决这个问题,以下是代码实例:nterface Phone{ public void BuyPhone();}class XiaoMi implements Phone{ @Override ...
2019-04-19 16:53:41
313
原创 Java反射之 三种实例化对象的方法
首先,反射是指根据对象来取得对象的来源信息,其中的一个核心操作就是Object类的一个getclass方法取得Class对象:public final native Class<?> getClass();该方法返回的是一个Class类对象,这个Class描述的就是类。在反射的世界里面,看重的不再是一个对象,而是对象身后的组成(类、构造、普通、成员等) 。Class类是描述...
2019-04-19 15:50:11
1335
原创 Java实现数字首尾交换。如123——>321
给出一个有符号的32 位整数你需要将这个整数中的每位上的数字进行反转。示例:123------->321-123------->-321120--------->21import java.lang.Math;class Change{ public void fun(int num){ int[] number = new int[32];...
2019-04-15 19:13:31
2401
原创 Java之方法引用
从最初开始,只要是进行引用都是针对于引用类型完成的,也就是只有数组、类、接口具备引用操作。但是JDK1.8 开始追加了方法引用的概念。实际上引用的本质就是别名。所以方法的引用也是别名的使用。而方法引用的类型有 四种形式:引用静态方法:类名称::static 方法名称 ;引用某个对象的方法:实例化对象 :: 普通方法 ;引用某个特定类的方法: 类名称 :: 普通方法 ;引用构造方法: 类名...
2019-04-14 14:59:41
150
原创 Java之函数式编程:lambda表达式及函数式接口
要想使用函数式编程有一个前提:接口必须只有一个方法,如果有两个方法,则无法使用函数式编程。如果现在某 个接口就是为了函数式编程而生的,最好在定义时就让其只能够定义一个方法,所以有了一个新的注解:@FunctionalInterface...
2019-04-14 09:43:43
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人