Java
文章平均质量分 55
Victor.Chang
留下思索,分享感悟
展开
-
Java 6行代码实现双色球生成器
public static void main(String[] args) { Set<Integer> set = new TreeSet<>(); do { int num = (int) (Math.random() * 33 + 1); set.add(num); } while (set.size() != 6); System.out.println...原创 2021-07-05 15:57:20 · 1040 阅读 · 0 评论 -
Java 随手写的一个英语单词练习器
1.导入英文单词;2.随机选取若干单词提问;3.终端输入单词,判断是否作对;4.得分显示;import java.util.*;/** * @author Victor.Chang * @date 2021/5/11 15:45 */public class EnglishWordTest { private static List<Word> monthWordList = new ArrayList<>(); static {原创 2021-05-12 14:22:42 · 1113 阅读 · 2 评论 -
Java爬虫-使用爬虫下载千张美女图片!
目的爬取搜狗图片上千张美女图片并下载到本地准备工作爬取地址:https://pic.sogou.com/pics?query=%E7%BE%8E%E5%A5%B3分析打开上面的地址,按F12开发者工具 -NetWork - XHR - 页面往下滑动XHR栏出现请求信息如下:Request URL :https://pic.sogou.com/napi/pc/searchList?mode=1&start=48&xml_len=48&query=%E7%BE..原创 2021-02-04 11:02:46 · 17291 阅读 · 43 评论 -
Java爬虫-基于WebMagic爬取某豆瓣电影评论
目的搭建爬虫平台,爬取某豆瓣电影的评论信息。准备webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料。下载WebMagic源码,或Maven导入,或Jar包方式导入。 码云地址:https://gitee.com/flashsword20/webmagic试运行搭建好后打开项目, 在us.codecraft.webmagic.processo...原创 2021-01-15 10:05:34 · 3170 阅读 · 0 评论 -
Java Web 学生/职工在线考试系统
1 介绍在线考试通用版,本项目是一个在线考试系统,适用于各类学校、企业、事业单位等机关在线考试。技术选型:SpringBoot、Mybatis、Mysql、JSP、Bootstrap、jQuery等。功能:用户管理、角色管理、权限管理、题库管理、发布考试、在线考试、成绩打分、查看成绩等。题型:单选题、多选题、判断题、填空题、解答题。应用案例:学生在线考试系统,企业职工技术晋升在线考试系统,在线问卷调查系统,职工价值评价在线考试系统,专业证书考试系统等等。本项目扩展性强,只需要在本项目的基原创 2021-01-08 14:57:25 · 2567 阅读 · 1 评论 -
Java-使用MultipartFile实现图片/文件上传
示例: 前端代码:<div class="form-item flexc"> <span class="form-item-name">请上传商品图片</span> <div class="form-item-list flex"> <div class="form-case-itemupload "> <input id="foodIm...原创 2020-09-17 18:56:14 · 5198 阅读 · 0 评论 -
Java-理解JVM内存区域和回收算法
JVM(Java Virtual Machine,java虚拟机)虚拟机:指通过软件模拟的具有完整硬件功能的,运行在一个完全隔离的环境中的完整计算机系统一、JVM运行时数据区域(共有六个模块,又分为线程私有和线程共享)线程私有:{1.程序计数器:一块比较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。2.Java虚拟机栈:每个方法执行的同时都会...原创 2018-06-22 17:59:15 · 1913 阅读 · 0 评论 -
Maven-使用Maven建立聊天室工程
Socket 套接字使用TCP提供了两台计算机之间的通信,客户端创建一个套接字并连接服务器端的套接字.Socket表示一个套接字,java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们建立连接的机制。步骤: 1.服务器实例化一个SeverSocket对象,表示服务器上的端口通信。 2.服务器端的SeverSocket对象调用accept方法,等待客户端连接服务器...原创 2018-06-22 16:03:12 · 2505 阅读 · 0 评论 -
Spring笔记01 - Spring体系结构
体系结构Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。核心容器核心容器由spring-core,spring-beans,spring-cont...原创 2019-06-15 11:41:36 · 1798 阅读 · 0 评论 -
Java-集合
Collection collection是单个集合保存的最大父亲接口,他与子接口的关系 List接口使用频率占集合的80%,List有两个重要的扩展方法:E get(int index) 根据索引取得元素E set(int index,E element)修改数据ArrayList,LinkedList,Vector的区别: ArrayList,Vec...原创 2018-05-27 18:22:32 · 1833 阅读 · 0 评论 -
Mybatis-使用Maven建立Mybatis工程 (IDEA)
使用IDEA创建Mybatis项目Mybatis应用的搭建流程 1. 创建一个maven项目 2. 添加Mybatis,MySQL驱动,junit依赖 3. 构建 4. 在src/main/resources添加一个mybatis-config.xml 5. 编写实体类,放在entity,实体类是跟我们数据库表对应的类 6. 编写映射,mapper包中,定一个m...原创 2018-06-24 14:16:57 · 4099 阅读 · 0 评论 -
Java>>与>>>的区别
>>:带符号右移。正数右移高位补0,负数右移高位补1。比如:4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。>>>:无符号右移。无论是正数还是负数,高位通通补0。对于正数而言,>>和>>>没区别。对于负数而言,-2 >&原创 2018-07-22 16:44:24 · 94991 阅读 · 27 评论 -
Java-线程池
线程池为什么要用线程池:1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。2.调整线程池中工作线线程的数目,防止因为消耗过多的内存。线程池的接口如下:使用:我们只需要从Executors静态工厂方法获取所需要的线程池即可。ThreadPoolExecutor的构建参数 /** * Creates a new {@...原创 2018-08-13 17:45:05 · 1810 阅读 · 0 评论 -
Spring笔记02 - Spring环境配置+实例
环境设置本教程将指导你如何准备开发环境来使用 Spring 框架开始你的工作。本教程还将教你在安装 Spring 框架之前如何在你的机器上安装 JDK,Tomcat 和 Eclipse。第 1 步:安装 Java 开发工具包(JDK)你可以从 Oracle 的 Java 网站Java SE Downloads下载 JDK 的最新版本。你会在下载的文件中找到教你如何安装 JDK 的说...原创 2019-06-15 12:00:37 · 1875 阅读 · 0 评论 -
数据库事务与脏读、不可重复读、幻读
事务定义Transaction 事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成 事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同 事务四大特征(ACID)原子...原创 2019-06-24 19:09:54 · 1848 阅读 · 0 评论 -
Java-实现二叉树基本操作、面试题
我们先来介绍一下什么是二叉树:二叉树的概念:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的二叉树组成二叉树的特点:每个结点最多有两棵子树,即二叉树不存在度大于2的结点二叉树的子树有左右之分,其子树的次序不能颠倒满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子节点都在同一层上完全二叉树:如果一棵具有N个结点的二叉树的结构...原创 2018-03-27 23:39:02 · 11994 阅读 · 5 评论 -
Java-打印流和Scanner使用用例,序列化反序列化用例
在桌面上新建一个Test.txt,使用打印流向文件中输出如下:Hello 123hello Worldpackage com.PrinIO;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.PrintWriter;import java.util....原创 2018-05-22 22:55:27 · 1894 阅读 · 0 评论 -
Java-ThreadLocal、Lock
ThreadLocal ThreadLocal是一个局部变量,主要解决多线程每个线程绑定自己的值。 ThreadLocal有三个成员方法 get()、set()、initialvalue()。如果不初始化initialvalue,则initialvalue返回null。 ThreadLocal的值具有隔离性。Lock ReentrantLock实现同步 private...原创 2018-05-07 18:21:18 · 1981 阅读 · 0 评论 -
Java-IO总结
File文件操作类 创建一个File类: public File(String PathName); //设置路径 public File(String parent,String child); //设置父路径,子文件 public boolean createNewFile(); //创建新文件 public boolean ...原创 2018-05-20 19:31:23 · 1797 阅读 · 0 评论 -
Java-双向链表的实现
双向链表,每个节点有一个属性值,一个指向前一个节点prev,一个指向后一个节点next,Link接口:public interface Link { boolean add(Object obj); //添加 boolean remove(Object obj); //删除 int length(); //求长度 Object[] toArray(); //转换为数组 bool...原创 2018-04-13 22:35:37 · 2175 阅读 · 0 评论 -
Java- toString、equals方法覆写,懒汉式单例模式,及异常处理
1).Person类有name,age,salary属性,要求实现至少两个构造方法,并且属性私有,提供对应的getter、setter。 2).覆写toString方法,要求在System.out.println()函数中传递Person对象能打印出三个属性值而不是对象地址。 3).覆写equals方法,要求两个Person类对象的值相同时返回true。class Person{ pri...原创 2018-04-13 14:40:00 · 1775 阅读 · 0 评论 -
Java-String类、Object类、包装类总结
String类"=="本身是进行数值比较的,如果现在用于对象比较,那么所比较的就应该是两个对象所保存的内存地址数值比较,而并没有比较对象的内容。 String str1 = "hello"; String str2 = new String("hello"); System.out.println(str1==str2); //输出结果是false 第一行代码...原创 2018-04-12 21:10:57 · 1959 阅读 · 0 评论 -
Java-二叉搜索树的实现操作及应用
二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树插入在二叉搜索树中插入新元素时,必须先检测该元素是否在树中已经存在。如果已经存在,则不进行插入;否则将新元素加入到搜索停止的地方。删除首先查找元素是否在二叉搜索树中,如果不存在,则返回...原创 2018-03-28 22:54:05 · 1966 阅读 · 0 评论 -
Java-接口练习
/**2.编程题: 利用接口做参数,写个计算器,能完成加减乘除运算。 (1)定义一个接口Compute含有一个方法int computer(int n, int m)。 (2)设计四个类分别实现此接口,完成加减乘除运算。 (3)设计一个类UseCompute,类中含有方法:public void useCom(Compute com, int one, int two), 此方法能够用传...原创 2018-04-03 00:21:08 · 12563 阅读 · 1 评论 -
Java-面向对象
1.定义一个Father和Child类,并进行测试。 要求如下: 1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。 2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。 3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并...原创 2018-04-01 22:33:45 · 2193 阅读 · 0 评论 -
Java-实现常见的七种排序
/** 插入排序:直接,希尔 选择排序:选择排序,堆排序 交换排序:冒泡,快速 归并排序:归并*/public class Sort{ public static void main(String[] agrs){ int[] a = new int[] {5,6,8,7,4,9,3,1,2,0}; //int[] a = new int[] {9,8,7,6,5,4,3...原创 2018-03-21 15:33:30 · 1737 阅读 · 0 评论 -
Java-快速排序、归并排序、堆排序、基数排序实现总结
直接上代码,分析注释里import java.util.Arrays;public class Test{ public static void main(String[] agrs){ //int[] a = new int[]{6,5,7,1,3,9,8,4,2,0,10}; int[] a = new int[]{6,27,1,3,5,8,24,2,10,5,8,8,8,24}...原创 2018-03-25 11:11:36 · 1845 阅读 · 0 评论 -
java-泛型总结
泛型类 从JDK1.5以后引入了三大常用新特性:泛型、枚举(enum)、注解(Annotation)。其中在JDK1.5中泛型是一件非常重要的实现技术,它可以帮助我们解决程序的参数转换问题。 范例:泛型类的基本语法class MyClass<T> { T value1;} 使用泛型类MyClass<String> myClass1 = n...原创 2018-04-26 13:13:12 · 1782 阅读 · 0 评论 -
Java-多线程(上)
进程与线程的概念进程:操作系统中一个程序的执行周期称为一个进程。在DOS系统的时代,由于其本身就是一个单进程的操作系统,所以在同一时间段上只能够有一个程序执行。后来发展到winodws系统后,我们发现多个程序可以同时执行,所以windows是一个多进程的操作系统。线程:一个程序同时执行多个任务。通常,每一个任务就称为一个线程。与进程相比较,线程更"轻量级",创建、撤销一个线程比启动一个新进程开销要...原创 2018-04-26 18:42:52 · 1869 阅读 · 0 评论 -
Java-静态代理-动态代理模式、cglib与JDK提供的动态代理之间的区别
静态代理:( 1个接口,2个实现类 ,1个真实类、1个代理类 N个接口,2*N个实现类 )package test513a;import java.lang.reflect.Constructor;interface ISubject{ void eat();}class RealSubject implements ISubject{ @Override p...原创 2018-05-13 23:28:41 · 1770 阅读 · 0 评论 -
Java-类加载器-双亲委派模型
范例:编写一个简单的反射程序,来观察ClassLoader的存在package com.ClassLoader;class Member{}public class Test { public static void main(String[] args) { Class<?> cls = Member.class; System.out.println(cls.ge...原创 2018-05-13 16:55:04 · 1811 阅读 · 0 评论 -
Java-单级VO操作
要求使用字符串:“student.name:yuisama|student.age:30”创建实例化对象Studentpackage cn.VO;public class Student { private String name; private String age; public String getName() { return name; } public vo...原创 2018-05-13 15:41:01 · 2108 阅读 · 3 评论 -
Java-反射总结
在反射的世界里面,看重的不再是一个对象,而是对象身后的组成(类、构造、普通、成员等) 获取Class类对象的三种实例化方式 a) 对象.getClass(); b) 类名.class; c) Class.forName("类的全名称");package cn.testReflect;class Person{ private String name; priv...原创 2018-05-13 14:33:03 · 1780 阅读 · 0 评论 -
java-顺序打印多线程;数组最大值与第一位交换、最小值与最后一位交换
package Test5_4;/** 3.(编程题) 要求使用线程同步与等待机制实现如下打印 *Thread-0#Thread-1@Thread-2 *Thread-0#Thread-1@Thread-2*Thread-0#Thread-1@Thread-2 *Thread-0#Thread-1@Thread-2*Thread-0#Thread-1@Thread-2*Thr...原创 2018-05-06 15:35:31 · 2754 阅读 · 0 评论 -
Java-多线程模拟卖票示例
//使用Runnable接口创建三个子线程并起名为A,B,C模拟实现卖票操作,观察结果。 class MyThread implements Runnable{ private int tickets = 20;//方法1:使用sychronized(this){}块// @Override// public void run() { // while(tickets>...原创 2018-04-26 21:17:05 · 1877 阅读 · 0 评论 -
Java-双链表(泛型)
使用泛型实现之前用Object的双链表:点击打开链接interface Link<T>public interface Link<T> { boolean add(T obj); //添加 boolean remove(T obj); //删除 int length(); //求长度 Object[] toArray(); //转换为数组 boolean...原创 2018-04-26 19:46:05 · 2444 阅读 · 0 评论 -
Java-多线程(下)
线程的同步线程的同步与死锁是多线程里面最需要重点理解的概念。这种操作的核心问题在于:每一个线程对象轮番强占资源带来的问题。 关于窗口卖票问题,若不采用线程同步,当三个窗口同时开始卖票,因为多线程之间的资源是共享的,当三个窗口都获取到票仅剩一张的时候,三个窗口都满足可以卖票这一条件,故对票ticket做三次-1操作,则ticket的最终结果是-1;从而需要线程同步窗口卖票链接s...原创 2018-05-04 17:32:33 · 1718 阅读 · 0 评论 -
Java-二分查找、插值查找、斐波那契查找的实现及分析
public class Search { /**1.顺序查找 时间复杂度为:O(n) */ public static int SequenceSearch(int[] a, int x) { for(int i=0;i<a.length;i++) { if(x==a[i]) return i; } return -1; } /**2.二分...原创 2018-03-24 14:31:46 · 2382 阅读 · 0 评论