- 博客(40)
- 收藏
- 关注
原创 使用Jdbc实现简单的ATM系统
本系统采用了三层架构以及Jdbc的技术简单实现了存钱、取钱、转账、查看余额、以及修改密码等功能1.准备mysql的jar包,进行导入以及一个db.properties配置文件2.工具类DbUtils类:包装了获取连接、增删改、以及对事务操作的一些方法/** * @description: * @author: yrm * @create: 2020-08-22 08:30 **/public class DbUtils { private static String driver;
2020-08-22 14:20:09 1829 2
原创 演示函数式接口的使用
Consume 消费型 //声明方法 public static void happy(Consumer<Double> consumer,double money) { consumer.accept(money); } //调用方法 happy(d1 -> System.out.println("参加聚餐,消费:"+d1),1000); Supplier 供给型在这里插入代码片...
2020-08-18 13:59:45 144
原创 使用NIO实现非阻塞式网络编程
服务端package com.qf.gp2002;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.ni.
2020-08-18 13:59:23 248
原创 单例模式的简单实现
概念:整个程序只有一个对象1.第一种方式(饿汉式)三个步骤:(1)私有化构造方法(2)在类内部创建一个对象(3)通过公开的方法,返回这个对象饿汉式:类一加载,对象就初始化缺点:生命周期长太长,浪费时间优点:线程安全 //1.私有化构造方法 private SingleTon1(){} //2.类内部创建一个对象 private static final SingleTon1 instance = new SingleTon1(); //3.通过公开的方法
2020-08-18 13:59:03 310
原创 FileChannel实现图片复制
//1.创建两个通道 FileChannel readChannel = FileChannel.open(Paths.get("d:\\1.jpg"), StandardOpenOption.READ); FileChannel writeChannel = FileChannel.open(Paths.get("d:\\copy01.jpg"), StandardOpenOption.CREATE, StandardOpenOption.WRITE, Standar...
2020-08-17 20:54:06 183
原创 NIO内存映射文件的用法
//1.创建两个通道 FileChannel readChannel = FileChannel.open(Paths.get("d:\\1.wmv"), StandardOpenOption.READ); FileChannel writeChannel = FileChannel.open(Paths.get("d:\\copy02.wmv"), StandardOpenOption.CREATE, StandardOpenOption.WRITE, Standar...
2020-08-17 20:53:36 214
原创 NIO创建缓冲区
//1.创建缓冲区,并使用put方法进行存放数据 ByteBuffer buffer = ByteBuffer.allocate(1024); //2.并使用put方法存放数据 String data = "我爱java,I love java"; buffer.put(data.getBytes()); //3.反转缓冲区(把写入模式转成读取模式) flip() buffer.flip(); ...
2020-08-17 20:52:10 83
原创 UDP简易实现群聊
1.发送方ChatSender DatagramSocket ds = null; try { //1.创建DatagramSocket ds = new DatagramSocket(); //2.创建发送数据包 Scanner scanner = new Scanner(System.in); while (true) { Stri
2020-08-17 20:51:34 362
原创 UDP简易实现发送和接受数据
1.发送方Sender //1.创建DatagramSocket,可以不提供端口号,自动分配端口号 DatagramSocket ds = new DatagramSocket(); //2.创建DatagramPacket,发送数据报包dp byte[] data = "好久不见".getBytes(); DatagramPacket dp = new DatagramPacket(data, data.length, InetAddr
2020-08-17 20:51:03 521
原创 IO流基本操作
文件字节输入流(读取) //1.创建文件字节输入流(读取) FileInputStream fis = new FileInputStream("d:\\bbb.txt"); //2.读文件 //2.1单个字节读取 int data = 0; while ((data = fis.read()) != -1) { System.out.print((char) data); } //2.2读取多个字节 byte[] buf = new byte[1024];.
2020-08-17 20:28:29 104
原创 文件夹基本操作
/** * @description: * @author: yrm * @create: 2020-08-17 19:54 **/public class Demo1 { public static void main(String[] args) { //创建一个文件 File file = new File("d:\\aaa"); //showDir(file,0); deleteDir(file); }
2020-08-17 20:17:39 272
原创 简易搜索二叉树的实现
首先我们需要知道的是二叉搜索树的特点:子节点比根节点小的都在根结点的左边,比根节点大的都在根节点的右边需要定义一个节点类(内部静态类)用来记录左右节点以及节点上的数据class BinarySortTree { static class Node{ //节点数据 private int item; //左子节点 private Node left; //右子节点 private Node right; }}...
2020-08-17 19:49:18 158
原创 使用两个栈来实现一个队列
1.定义一个MyQueue类 声明属性如下: // 用于进栈 private Stack<T> stack1; // 用于出栈 private Stack<T> stack2; // 记录有效元素个数 private int size;2.我们需要在创建队列对象时就已经存在两个栈,因此写个无参构造方法,如下 // 创建队列对象时自动创建两个栈 public MyQueue() { stack1 = new St
2020-08-08 15:02:15 159
原创 面试题(异常)
// num = 10 public static int getNum(){ int num = 10; try{ return num++; }catch (Exception e) { return num++; }finally { num++; } }
2020-08-01 17:38:08 88
原创 面试题(静态)
public class TestStatic { public static void main(String[] args) { // 调用静态方法时进行类加载 Demo.show();//1 }}class Demo{ public static Demo demo = new Demo();//2 public static int num1;//5 public static int num2 = 0;//6 public
2020-08-01 17:37:23 171
原创 面试题(字符串比较)
// 常量池中没有abc 放进去String s1 = "abc";// 常量池中没有xyz 放进去String s2 = "xyz;// 通过.class文件可以看出来两个字符串变量相加是通过StringBuilder中append方法进行拼接 最后toString 而toString的实质是创建对象 则将上s3指向堆中String s3 = s1 + s2;...
2020-08-01 17:13:12 288
原创 常见数组算法小解
以下数组皆采用 int[] arr = {10,45,23,24,89,20};冒泡排序(相邻两个元素进行比较,每次选出一个最大值放在最后面)for (int i = 0; i < arr.length - 1; i++) { // 每一轮都是从头开始两个元素进行比较 比较最大次数为每一轮 - 1 因为每次选出最大值后不再参与比较 for (int j = 0; j < arr.length - i - 1; j++) { // 如果后者大于前者 则进行交换 if (ar.
2020-07-31 21:46:18 118
转载 Java常用API介绍
Java常用API1.StringBuffer1.1 StringBuffer概述 为了解决String字符串操作导致的内存冗余,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串,并且提供了很多方法,便于程序员开发。 StringBuffer和StringBuilder中都有char类型可变长数组作为字符串的保存空间。使用到的方法类型和ArrayL...
2020-02-28 23:46:01 249
原创 IO流、缓冲流和序列化简单总结
1. IO流 (文件操作为例)1.1 文件操作输入字节流 FileInputStream构造方法用法FileInputStream(File file)根据提供的File类对象创建对应的文件操作输入字节流FileInputStream(String pathName)根据提供的String类型文件路径,创建对应的文件操作输入字节流成员方法用法...
2020-02-27 23:22:48 113
原创 String类和IO流
1.String类1.1 获取方法int length();![字符串比较要求](img/字符串比较要求.png) 获取字符串长度 "" char charAt(int index); 获取String字符串中指定下标位置的char类型字符,如果index超出有效范围 StringIndexOutOfBoundsExceptionint indexOf(char ch);int ...
2020-02-26 23:31:03 160 1
原创 使用【泛型】和【Comparator<T>】接口使用满足任何数据类型的selectSort排序算法
分析题干: 这是一个选择排序算法 方法需要用到泛型和Comparator<T>接口题干分析完成后,开始进行具体问题的分析(在这里我们以Person类的年龄升序排列为例)首先创建一个Person类(主要代码如下,符合javaBean规范即可)接下来是具体的实现 /** * 首先创建几个Persona2类对象 并存到数组persons中 */ Person2...
2020-02-25 21:56:11 374
原创 LinkedList,Object和Set
LinkedList,Object和Set1 LinkedList1.1. LinkedList实现类似于ArrayList1.2. LinkedList特征1. 存储数据,非连续空间。2. 数据之间通过引用连接,方便遍历和使用3. 遍历效率较低,数据非连续空间存储,需要通过引用跳转过程来完成4. 删除插入操作效率高,但是注意地址的转移和保存问题。5. LinkedList链表当...
2020-02-24 22:01:46 272 2
原创 自定义MyArrayList类型基本功能的实现
ArrayList是我们平时所用到较多的一种可变长数组特征:数组形式的操作方式,增删慢,查询快数组:Object类型数组方法:基本上都是从List接口中遵从实现的方法在这里我们写一个自定义MyArrayList类型来实现ArrayList中基本的方法/*** 自定义实现MyArraylist* @author yrm** @param <E> 自定义泛型*/pub...
2020-02-22 18:14:15 941 2
原创 java中常见关键字分析(一)
1. this关键字this关键字特征:this关键字表示调用当前方法的类对象/或者说当前构造方法中初始化的类对象 如下代码: 运行后三条输出语句结果一样class Cat { public Cat() { System.out.println("Constructor : " + this); } public void test() { System.out.pri...
2020-02-15 17:46:35 426
原创 java基础知识(一)
1. java语言简单介绍1.1 跨平台java因为拥有JVM,能够帮助Java程序可以支持不同的平台。1.2 编译执行javac 编译工具 javac xxx.java 编译之后会生成一个 FirstJava.class文件,.class字节码文件,二进制文件,需要借助于JVM执行解释。java 执行工具 java xxx2. 标识符2.1 定义开发中标识符就是名字 例如...
2020-02-08 16:37:40 186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人