自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL _ JDBC 编程

1. 建立连接通过 DataSource 来建立连接创建 mysqlDataSource 实例,通过setURL、setUser、setPassword等方法来设置相关属性,调用getConnection()方法,建立连接 ,如果连接失败,就会抛出异常; Connection connection = HClass.getConnection();2. 拼装sql语句创建一个 prepareStatement 实例,进行 sql 语句的预编译在构造实例时传入一个字符串(sql语句),即操作命令

2020-12-09 15:34:44 168 1

原创 每日一题:神奇的口袋

一. 题目描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入描述:输入的第一行是正整数n (1 <= n <=20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a

2020-11-30 14:38:55 334

原创 在线点餐系统的测试用例

2020-09-03 22:54:33 5500

原创 微微音乐的测试用例

2020-09-03 21:06:15 540

原创 在线点餐系统的设计思路

项目源码:在线点餐系统

2020-08-23 20:47:48 1331

原创 微微音乐的思路分析

项目源码:音乐播放器代码

2020-08-23 20:30:06 196

原创 简单博客系统的思路分析

代码:项目源码

2020-08-23 19:56:18 192

原创 顺序表的实现

import java.util.Arrays;public class MyArrayList { public int[] array; public int size; public static final int default_size = 10; public MyArrayList() { this.array = new int[default_size]; this.size = 0; } // 打印

2020-08-04 14:28:13 79

原创 链表的实现

// 节点类class Node { public int val; public Node next; public Node(int val) { this.val = val; }}public class MyLinkedList { public Node head; public MyLinkedList() { this.head = null; } //头插法 public v

2020-08-04 13:24:50 87

原创 MySQL中的事务

什么是事务?把一组操作打包在一起,执行的时候能够保证这些操作之间满足一定特性,称为事务MySQL 中的事务主要用于处理操作量大,复杂度高的数据。事务的特性原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。例子:转账问题一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完

2020-07-09 01:26:05 116

原创 线程案例之线程池

线程池的组成部分:有一个类,来描述具体线程要做的工作是啥,(借助 Runnable 来表示)还需要一个数据结构来组织若干个任务,BlockingQueue再有一个类,表示工作线程还需要一个数据结构来组织若干个线程,List线程池的核心操作:execute:把一个任务加到线程池中shutdown:销毁线程池中所有线程线程池代码/** * 线程案例之线程池 */// runnable 本质上就是描述一段要执行的任务代码import java.util.ArrayList;im

2020-07-08 22:30:47 96

原创 每日一题:年会抽奖

一、题目描述今年公司年会的奖品特别给力,但获奖的规矩却很奇葩:首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有字条加入完毕,每人从箱中取一个字条;如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!”现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖?二、思路分析对于什么时候才算做都不获奖,当然是所有人都拿到了别人的名字,没有拿到自己的名字。全部都不获奖的概率必定是由 n个人都拿错的情况种数 除 n个人拿出的所有排列情况数。n个人拿出的所有排列情况数显然是n的阶乘

2020-07-04 23:57:13 703

原创 每日一题:人民币转换

一、题目描述题目和要点:1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。二、代码

2020-06-30 23:52:15 202

原创 每日一题:最高分是多少

一、题目描述老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然老师有时候需要更新某位同学的成绩输入:.输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为’Q’的时

2020-06-29 23:17:14 850

原创 每日一题:成绩排序

一、题目描述输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。示例:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack 70Tom 70smith 67从低到高smith 67jack 70Tom 70peter 96输入描述:输入多行,先输入要排序的人的个数,

2020-06-22 23:37:00 418

原创 每日一题:DNA序列

一、题目描述一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。输入描述:输入一个string型基因序列,和int型子串的长度 n输出描述:找出GC比例最高的子串,如果有多个输出第一个的子串二、思路分析

2020-06-21 23:23:12 2175

原创 多线程案例之时间表

时间表的构成:1、使用一个 Task 类来描述 “一段逻辑 ” (一个要执行的任务),同时也要记录这个任务在啥时候来执行2、使用一个阻塞队列来组织若干个 Task3、还需要一个扫描线程,扫描线程要循环的检测队首元素是否需要执行,如果需要执行的话,即执行的时间到了的话,就执行这个任务4、还需要提供一个方法,让调用者能把任务给 “ 安排 ”进来,到定时器中去import java.util.concurrent.PriorityBlockingQueue;public class ThreadD

2020-06-18 23:06:18 148

原创 每日一题:洗牌

一、题目描述洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着把牌合并起来就可以了。 例如有6张牌,最开始牌的序列是1,2,3,4,5,6。首先分成两组,左手拿着1,2

2020-06-17 23:26:02 671

原创 每日一题:另类加法

一、题目描述请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。给定两个int A和B。请返回A+B的值二、思路分析位的异或运算跟求‘和’的结果一样:异或 :1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 0 = 1;求和 :1 + 1 = 0,1 + 0 = 1,0 + 0 = 0;位的与运算跟求’进位‘的结果一样:位与 :1 & 1 = 1,1 & 0 = 0,0 & 0 = 0;进位 :1 + 1 = 1,1 + 0 = 0,0 + 0 = 0;所

2020-06-17 23:05:52 233 2

原创 每日一题:组个最小数

一、题目描述给定数字 0~9 各若干个。你可以任意顺序排列这些数字,但是必须全部使用。目标使得最后得到的数尽可能的小(注意0不能做首位)例如:给定两个0,两个1,两个5,一个8,我们得到的最小的数就是 10015558;输入描述每输入包含一个测试用例,每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0,数字1、……数字9的个数。整数间用个空格隔开。10个数总数不能超过50,但是至少有一个非零的数字。输出描述在一行输出能够组成的最小的数二、思路分析首先,根据输入的数(每一位都

2020-06-16 16:19:30 357

原创 多线程案例之阻塞队列

当队列满的时候,入队列就发生堵塞,直到有元素出队列,才可以继续入队列当队列空的时候,出队列就发生堵塞,直到有元素入队列,才可以继续出队列 static class BlockingQueue { // 队列的实现可以基于数组也可以基于链表来实现 private int[] array = new int[1000]; private volatile int head = 0; // 第一个元素下标 private volatile int

2020-06-15 22:51:06 147

原创 多线程案例之单例模式

一、“ 饿汉 ” 模式在类加载的时候就立即实例化对象 // “饿汉”模式-------线程安全 static class Singleton { // 私有的构造方法,外部类不可以 new 实例,但是因为此类是 ThreadDemo11 的内部类,可以 new private Singleton() { } public static Singleton instance = new Singleton(); public sta

2020-06-15 21:12:11 129

原创 每日一题:超长正整数相加

一、题目描述请设计一个算法完成两个超长正整数的加法。接口说明 /* 请设计一个算法完成两个超长正整数的加法。 输入参数: String addend:加数 String augend:被加数 返回值:加法结果 */ public String AddLongInteger(String addend, String augend) { /*在这里实现功能*/ return null; }二、思路分析1、先找出长度较短的一个字符串,然后在该字符串前边用 0

2020-06-15 20:12:11 259

原创 了解线程中的 volatile 关键字

import java.util.Scanner;public class ThreadDemo { static class Counter { public int flag = 0; } public static void main(String[] args) { Counter counter = new Counter(); Thread t1 = new Thread() { @Overr

2020-06-14 21:18:22 102

原创 每日一题:下厨房

一、题目描述牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。输入描述:每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50行,每一行不超过 50 个字符。输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。二、思路分析因为使用的材料有重复,想要知道材料的种数,可以借助 Set ,来进行去重,最后 Set 中的材料每个只有一份,再

2020-06-14 16:17:08 140

原创 每日一题:生成格雷码

一、题目描述在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请返回n位的格雷码,顺序为从0开始。二、思路分析如图所示,n = 3 的格雷码,前一半是 n = 2 的正序的格雷码前边拼接上 0,后一半是 1 拼接上2 的倒叙的格雷码,同样,n = 2 的前一半格雷码是由 0 与 1 的格雷码组成,后一半由0 和 1的倒叙格雷码组成。三、代码public static Stri

2020-06-14 00:35:45 360

原创 每日一题:个位数统计

一、题目描述·给定一个k位整数N = dk-110k-1 + … + d1101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。二、思路分析因为输入的数可能过大,用字符串来表示;想知道这个数里的每个数出现的次数,就得先遍历这个数的每一位,将他们放入 Map <key, value>里,key 为这个数里的一数字, value 存放该数字出现

2020-06-12 16:36:01 625

原创 每日一题:不要二

一、题目描述二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里?二、思路分析例:5*9的格子里的蛋糕只要数清楚,每个4行中, i 或 i+1 行的蛋糕数为 (n / 4) * 2 + (n % 4 &

2020-06-12 00:23:57 153

原创 线程不安全的原因及其解决

一、什么是线程不安全和线程安全定义:线程不安全:多线程并发执行某个代码时,产生了逻辑上的错误,结果和预期值不相同线程安全是指多线程执行时没有产生逻辑错误,结果和预期值相同二、线程不安全产生的原因线程是抢占执行的。有的操作不是原子的。当 cpu 执行一个线程过程时,调度器可能调走CPU,去执行另一个线程,此线程的操作可能还没有结束;(通过锁来解决)多个线程尝试修改同一个变量(一对一修改、多对一读取、多对不同变量修改,是安全的)内存可变性指令重排序:java的编译器在编译代码时,会针对指令

2020-06-11 23:18:44 7067

原创 每日一题:机器人走方格

一、题目描述、有一个X*Y的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。 请设计一个算法,计算机器人有多少种走法?给定两个正整数 int x, int y,请返回机器人的走法数目,保证 x+y 小于等于 12二、思路分析当网格为 1 * 1 时,一种走法当网格为 1 * 2 时,一种走法当网格为 2 * 1 时,一种走法当网格为 2 * 2 时,两种走法……得到:f(x , y) = f(x - 1, y) + f(x , y - 1)三、代码递归方法imp

2020-06-10 22:14:33 281

原创 每日一题:N ! 末尾 0 的个数

一、题目描述输入一个正整数 n,求 n!中的末尾 0 的个数?二、思路分析分解质因数,求解(2,5)对,又因为2比较多,所以,根本是求出5的个数。原理是:假如你把1 × 2 ×3× 4 ×……×N中每一个因数分解质因数,结果就像:1 × 2 × 3 × (2 × 2) × 5 × (2 × 3) × 7 × (2 × 2 ×2) ×……10 进制数结尾的每一 个 0 都表示有一个因数10存在——任何进制都一样,对于一个M进制的数,让结尾多一个 0 就等价于乘以 M。10可以分解为 2 × 5

2020-06-10 16:42:53 417

原创 线程控制

一、创建线程(五种方法)public class ThreadDemo { static class MyThread extends Thread{ @Override public void run() { System.out.println("hello world,我是一个新线程"); while (true) { } } } // Runnab

2020-06-09 23:18:50 104

原创 每日一题:删数

一、问题描述有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。二、思路分析可以利用顺序表来存放 0 ~ N-1,根据顺序表下标,每隔两个数移除一个数,直到顺序表中只有一个元素,再根据 0 号位置得到所要求的原始下

2020-06-09 00:20:25 731

原创 线程与进程

一、进程1、什么是进程?进程是一种操作系统中非常重要的软件资源,同时也是操作系统中的分配资源的最小单位;当把双击一个可执行文件是,操作系统就会加载它的很多内容到内存中,分配一些资源,并开始执行这个可执行程序中包含的指令,此过程就可被称为 “ 过程 ” ;把一个可执行程序运行起来,系统中就会创建一个进程,当程序执行结束了。对于进程就会被销毁掉;2、进程的管理先描述,再组织;以 linux 为例,内核中使用一个 task_struct / PCB(进程控制块)结构体来描述进程,每创建一个进程,就同

2020-06-08 01:19:21 129

原创 每日一题:n 个数里出现次数大于等于 n/2 的数

一、问题描述输入n个整数,输出出现次数大于等于数组长度一半的数。要求输入:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。二、思路分析● 一个数组中只有一个元素个数大于等于数组长度的一半,那么排序后,数组中间那个元素就是所求的元素。● 还可以统计数组中每个元素的个数,因为只有一个数的个数大于等于 n/2 ,那么当个数满足要求,此数就是所求的元素。三、代码方法一:import java.util.Arrays;import java.util.

2020-06-06 16:29:50 503

原创 如何用栈实现队列?

一、思路分析首先准备两个栈,用 static1 来入队列,用 static2 来出队列入队列:先把 static2 中的所有元素加入到 static1 中然后往 static1 中入队列出队列:将 static1 中的所有元素加入到 static2 中,然后 static2 进行出栈操作取队首元素:将 static1 中的所有元素加入到 static2 中,然后对 static2 取栈顶元素二、代码import java.util.Stack;public class TestQueue {

2020-06-05 23:04:13 1836

原创 如何用队列实现栈?

一、思路分析首先,需要A,B两个栈;用 A 来保存入队列数据;将A中数据出栈,入B栈,当A中就剩一个数据时,出栈即出队列,再交换AB两栈;取队首元素,和出队列过程相似,在将A中最后一个元素,记录下来,再入B栈,记录下来的数据就是队首元素;二、代码import java.util.LinkedList;import java.util.Queue;public class MyStackBy2Queue { private Queue<Integer> A = new L

2020-06-05 22:18:10 2021

原创 栈与队列的实现

一、顺序表实现栈ublic class MyStack { int[] array = new int[100]; int size = 0; // 元素个数 // 入栈 public void push(int x) { array[size] = x; size++; } // 取栈顶元素 public int peak() { return array[size - 1]; }

2020-06-05 15:44:34 113

原创 每日一题:删除公共字符

一、题目描述输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符。例如:输入 “ They are student ” 和 “ aeiou ”,则删除之后的第一个字符窜啊变成 “Thy r srdnts”;二、思路分析1、首先,需要定义一个空字符串来保存最后的结果;2、再定义一个标示符,来判断第二个字符串中是否包含第一个字符串的字符;3、循环遍历第一个字符串,用其每一个字符和第二个字符串中的字符进行比较,a)当有相等的字符时,标示符就为真,结束第二个字符串的遍历,当标示符为真时,就结束

2020-06-04 15:43:23 185

原创 每日一题:买苹果

一、题目描述小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。要求:输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出 -1二、思路分析1、当要买的苹果数是奇数个,不买;2、当要买的苹果数是小于六的不买;3、特例:当买的苹果是 10 时,也不买;4、其他个数的苹果,如果是 8 的倍数,最少就可以买 (n / 8) 袋,如果不

2020-06-03 22:42:20 456

空空如也

空空如也

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

TA关注的人

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