- 博客(62)
- 收藏
- 关注

原创 JavaGUI--模拟QQ聊天界面私聊群聊
点击下载源代码目录JFrame类的几个重要方法持久层服务端创建用户注册模块用户登录窗口好友列表和群聊列表模块用户私聊逻辑群聊创建群聊消息JFrame类的几个重要方法Frame类的构造方法,设置所画出的窗口的名称:public JFrame(String title) 设置该窗口下的所有窗体(panel):public void setContent...
2019-08-30 20:13:32
1891
1

原创 旅游网的设计
资源下载链接:https://github.com/feval/project_travel配置环境:JDK1.8,MySQL数据库,redis数据库,tomcat7,apache-maven-3.5.3。目录技术选型注册功能登陆退出分类数据展示对分类数据进行缓存优化旅游线路的分页展示根据id查询不同类别的旅游线路数据旅游线路名称查询查询参数的传递技...
2019-07-30 13:56:10
554
原创 Java开发---类集(Map)
Map集合保存一对对象的最大父接口,键值对(key值唯一,当key值重复时,覆盖value值)Map接口的定义public interface Map<K,V>Map接口的重要方法获取Map集合所存储数据大小:int size();判断Map集合是否为空:boolean isEmpty();判断是否包含key值:boolean containsKey(Obj...
2019-08-06 19:02:15
171
原创 Java开发---类集(Collection)
Collection接口Collection是单个集合保存的最大父接口Collection接口定义public interface Collection<E> extends Iterable<E>Collection接口的重要方法取得集合长度:int size();判断集合是否为空:boolean isEmpty();查找数据是否存在(需要使用e...
2019-08-06 16:26:16
136
原创 Java开发---线程池
线程池的优点减低资源消耗:通过重复利用已创建的线程降低线程创建和销毁带来的消耗提高响应速度:当任务到达时,任务可以不需要等待线程创建就能立即执行提高线程的可管理性:使用线程池可以统一进行线程分配,调度和监控线程池的工作流程当一个任务提交给线程池时,首先判断核心池的线程数量是否达到corePoolSize,若未达到,线程池创建新的线程执行任务并将其置入核心池中。否则,判断核心...
2019-08-05 16:26:33
135
原创 Java生产与消费者模型---等待唤醒机制
生产者与消费者模型简介生产者和消费者彼此之间不直接沟通,而通过阻塞队列来进行通讯,当生产者生产的商品不足时,生产者开始生产,消费者进行阻塞,当生产者生产充足的商品后,唤醒消费者,进行出售......所以生产者生产完数据之后不会等待消费者处理,直接唤醒阻塞队列中的所有线程,同时自身阻塞,消费者在消费完成后,同时唤醒阻塞队列中的所有线程,自身进行阻塞.......阻塞队列就相当于一个缓冲区,平衡了...
2019-08-05 15:40:58
213
原创 Java多线程锁--lock
死锁死锁产生的条件互斥:共享资源只能同时被一个线程占用 占有且等待:eg:拿到worker锁,不释放的同时去申请money锁 不可抢占:线程Thread1拿到对象锁x后,其他线程无法强行抢占x锁。 循环等待:线程T1拿到了资源X的锁,去申请Y的锁。线程T2拿到了资源Y的锁,去申请X的锁。Lock-JDK1.5-基于Java语言层面实现的线程"锁"产生背景:synchronize...
2019-08-04 17:22:59
173
原创 Java多线程锁---synchronized
Java中常用的线程操作方法取得当前JVM中正在执行的线程对象public static native THread currentThread();线程名称的命名和取得public Thread(Runnable target, String name) public final synchronized void setName(String name) S...
2019-08-04 16:16:02
196
原创 java多线程---线程的四种创建方式
线程启动线程的启动只能调用start方法,在java中,在执行一个线程之所以会调用run方法,是Thread类中有一个start0方法中有一个变量started初值为false,在调用start0()方法后,started才置为true,而start0()方法是c语言实现的,所以java中创建一个线程本质是c语言实现,而在C语言创建一个线程之后就直接调用了run方法,所以java中的在使用线程...
2019-08-03 21:55:30
144
原创 JavaBean---反射操作多级VO
VO:值对象问题引出假如一个类中有无数的setter方法,开发人员在开发中需要一个一个的设定值,这样会浪费大量的时间,以及在操作中造成一些不必要的失误,所有通过反射,我们可以对程序进行简单的简化例如:,输入字符串"属性名称:属性值|属性名称:属性值|属性名称:属性值|....",就可以将类中 的属性设置好。希望通过此程序实现任意的简单Java类的属性设置分析在Java语言中,类...
2019-08-03 16:02:28
422
原创 Java开发---反射
反射机制在反射的世界里面,看重的不再是一个对象,而是对象身后的组成(类、构造、普通、成员等)Class类三种实例化对象任何类的实例化对象可以通过Object类中的getClass()方法获取Class类的对象 “类.class”之间根据某个具体类来取得Class类的实例化对象 使用Class类提供的方法:public static Class<?> forName(S...
2019-08-02 14:13:19
76
原创 Java开发--泛型
新特性(JDK1.5)可变参数设计一个方法,用于计算任意参数的整数结果,可变参数的引用就能实现最初方式的缺陷public class TestDemo { public static void main(String[] args) { System.out.println(add(new int[]{1})); System.out.print...
2019-08-02 13:33:14
112
原创 Java抽象类和接口
抽象类的定义和使用抽象类只是比普通类多一些抽象方法,所谓的抽象类就是指声明二为实现的方法(没有方法体),所有抽象方法要求使用abstract关键字来定义,并且抽象方法所在的类也一定要使用abstract关键字来 定义,表示抽象类抽象类的使用原则所有的抽象类必须有子类 抽象类的子类必须覆写抽象类的所有抽象方法,否则子类也为抽象类 抽象类的实例化可以通过对象多态性利用子类为其实例化 ...
2019-08-01 14:46:19
94
原创 Java继承和多态
继承的定义和使用继承的实现class 子类 extends 父类子类也被称作派生类,父类也被称作超类当发生继承关系之后,子类可以直接继承父类的操作,可以实现代码的重用,子类最低也能维持和父类相同的功能,子类可以进行功能的扩充继承的限制子类对象实例化之前一定会先实例父类对象,默认使用父类的构造方法后调用子类的构造方法进行子类对象初始化(实际上在子类的构造方法中,相当于隐含了一...
2019-08-01 14:13:59
98
原创 面向对象-类与对象
面向对象的三大特征封装性:把客观事物封装成抽象的类,内部操作对外部而言不可见性(保护性)继承性:可以使用现有类的所有功能,并在无需编写原来类的情况下对这些功能进行扩展多态性:一个实例的相同方法在不同情况下有不同的表现形式,即不同内部结构的方法可以共享相同的外部接口定义一个类的语法class 类名称{ 属性1; 属性2; ...
2019-07-31 18:19:27
80
原创 泛型
1.方法可变参数含义:将可变参数变成一个数组,通过数组访问可变参数;规则:public [static] [final] 返回值 方法名称([参数类型 参数名称],参数类型...参数名称) {} 可变参数必须定义在参数列表最后; 可变参数在参数列表中最多一个;package bit;/** * */public class TestDemo { publi...
2019-04-20 01:49:09
127
原创 Solution665 非递减数列
给定一个长度为n的整数数组,你的任务是判断在最多改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (1 <= i < n),满足array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非...
2019-04-17 22:45:37
85
原创 leetcode 亲密字符串 Solution859
给定两个由小写字母构成的字符串A和B,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回true;否则返回 false 。示例1:输入: A = "ab", B = "ba"输出: true示例2输入: A = "ab", B = "ab"输出: false示例3输入: A = "aa", B = "aa"输出: true示例4...
2019-04-17 22:36:58
106
原创 mysql库和表的操作
创建一个数据库(不区分大小写) 字符集为utf8create database if not exists db1 charset=utf8 collate utf8_general_ci;创建一个数据库(区分大小写) 字符集为utf8create database if not eixsts db2 character set utf8 collate utf8_bin;...
2019-04-03 23:44:49
87
原创 代理设计模式
首先,提供一个接口,定义业务功能;interface Subject{ /** 买电脑 */ void buyComputer();}在定义业务类,实现接口的功能class RealSubject implements Subject{ public void buyComputer(){ Syste...
2019-03-17 23:12:00
64
原创 面向接口编程
假如定义一个USB接口,这个接口可以连接打印机,U盘等工具,这样我们可以先对接口进行定义,再由类操作对其各个功能进行细化,在主函数中通过对接口的实例化对象可以访问接口的各个功能 public static void main(String[] args) { Computer computer=new Computer(); USB printer=new Printer();...
2019-03-15 16:26:33
93
原创 模板设计模式
public class TemplateDesignPattern{ public static void main(String[] args) { Drink coffee=new Coffee(); coffee.means(); Drink tea1=new Tea(); tea1.means(); Drink tea2=new Tea(false); tea...
2019-03-14 23:13:29
63
原创 java打印小票
public class TestChart{ public static void main(String[] args) { Discount[] tx=new Discount[]{new Discount("T恤",245),new Discount("网球鞋",570),new Discount("网球拍",320)}; int result=0; tx[0].setNu...
2019-03-11 17:50:36
455
原创 扫雷游戏
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>int Menu() { printf("=============\n"); printf("1.开始游戏\n"); printf("0.结束游戏\n"); printf("
2019-02-20 22:34:04
93
原创 谁是凶手
#include <stdio.h>#include <stdlib.h>void find_killer() { int killer = 0; for (killer = 1; killer <= 4; ++killer) { if ((killer != 4) + (killer == 3) + (killer == 4) + (killer !=...
2019-02-20 22:29:20
172
原创 杨辉三角
#include <stdio.h>#include <stdlib.h>#define N 10void yhsj() { int a[N][N]; int i, j; for (i = 0; i < N; ++i) { a[i][0] = 1; a[i][i] = 1; } for (i = 2; i < N; ++i) { f...
2019-02-20 22:25:16
72
原创 二进制翻转
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include<math.h>unsigned reverse_bits(unsigned n) { unsigned sum = 0; int i; for (i = 0; i < 32; ++i) {...
2019-02-20 22:18:41
275
原创 预测比赛结果
#include <stdio.h>#include <stdlib.h>void endless() { int a, b, c, d, e; for (a = 1; a < 6; ++a) for (b = 1; b < 6; ++b) for (c = 1; c < 6; ++c) for (d = 1; d < 6...
2019-01-13 19:17:49
424
原创 两个int(32)整数m和n的二进制表达中,有多少个bit位不同
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int cal_diff_bits(int m, int n) { int count = 0; for (int i = 0; i < 32; ++i) { if (((m >> i) & 1)...
2019-01-13 18:54:21
166
原创 获取一个数的二进制的奇数列和偶数列
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void print(int n) { //偶数序列 for (int i = 31; i > 0; i -= 2) { printf("%d ", (n >> i) & 1); } p...
2019-01-13 18:35:11
143
转载 计算一个数中二进制1的个数1
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int count_one_bits1(unsigned val) { int count = 0; while (val){ ++count; val = val&(val - 1); } return...
2019-01-13 18:21:55
169
原创 计算一个数中二进制1的个数
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int count_one_bits(unsigned val) { int count = 0; int i = 0; for (; i < 32; ++i) { if (((val >> i) &a...
2019-01-13 18:05:59
148
原创 三子棋
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 3#define COL 3char g_broad[ROW][COL];void Init() { //把数组中每个元素都初始化成‘ ’空格 for (...
2019-01-13 17:41:47
84
原创 递归方式打印整数的每一位
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void print(int i) { if (i > 9) { print(i / 10); } printf("%d ", i % 10);}int main() { int n=0; scanf("%...
2019-01-13 17:36:49
166
原创 递归和非递归求n的阶乘
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int fun1(int n) { if (n < 2) { return 1; } return n*fun1(n - 1);}int fun2(int n) { int i = 1; int ret =...
2019-01-13 17:25:11
95
原创 使用递归和非递归实现strlen功能
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int g_strlen(char* str) { int count = 0; while (*str) { count++; str++; } return count;}int Strlen(char* s...
2019-01-13 17:10:29
119
原创 递归方法实现字符串中的字符反向排列
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>int Strlen(char* str) { int count = 0; while (*str++) { count++; } return count;}...
2019-01-13 16:54:36
176
转载 数组变换
#include <stdio.h>#include <stdlib.h>void init(int a[], int sz){ int i = 0; for (i = 0; i < sz; i++) { a[i] = i; printf("%d ", a[i]); }}void empty(int a[], int sz){ int ...
2018-12-09 22:22:15
302
原创 判断素数 函数调用
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int issushu(int x) { if (x == 0||x==1) { return 0; if (x == 2) { return 1; } } for (int i = 2; i < x; ++i...
2018-12-09 17:13:54
1608
原创 判断闰年
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int isrn(int x) { if (x % 100 == 0){ if (x % 400 == 0) return 1; else return 0; } else if (x % 4 == 0) { r...
2018-12-09 17:01:32
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人