- 博客(23)
- 收藏
- 关注
原创 Java实现小型英汉互译服务器
你是不是对于网上英译汉的功能所感到神奇,下面我将带你去实现小型的英汉互译服务器,让我们一起揭开英汉互译神秘 的面纱吧!package net.Socket;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;import java.util.HashMap;import java.util.Map...
2021-05-13 19:15:22
1275
原创 TCP-IP协议和OSI协议
TCP-IP协议 五层:-应用层:与应用程序相关的:-传输层:端对端的通讯,源地址,和目的地址-网络层:进行路由选择和连接管理-数据链路层:管理相邻节点的数据传输的-物理层:网络的基础设备 网线,光纤, 电(光)信号OSI协议七层:应用层:应用程序使用表示层:将数据转化成用户可以看懂的数据进行展示会话层:管理传输层的连接传输层;端对端的数据传输,源地址,目标地址网络层;管理连接和选择路由器数据链路层:管理相邻节点数据的传输和协议转换的物理层: 一切基础设备(网线, 光纤,光/电信号
2021-05-12 19:57:25
159
原创 线程池的基本用法
首先我们要知道什么是线程池?使用池化技术管理和使用线程的一种机制 本质是多个对象的复用。线程池的核心组成主要是 ,1.一个阻塞对列 ,阻塞对列 中放有当前要执行的所有的任务2.一个包含N个线程的顺序表/数组线程池的优先有那些?1.避免线程频繁创建和消耗锁带来的性能开销2.线程池可以更快速的执行任务,当有任务时可以直接分配线程进行执行3.线程池有统一调度和管理机制,可以避免线程的争抢;4.线程池提供更加丰富的功能,可以执行定时任务的线程池线程池的创建?线程池创建方法主要有7种(其中6种是
2021-05-01 18:47:36
293
原创 线程——阻塞对列
阻塞对列:生产者消费者模型的一种方式如果对列满了,此时在进行入对列,入队列操作就会阻塞等待,直到对列中存在空闲位置如果对列为空,此时再进行出对列,出对列操作也会阻塞等待,直到对列中被放入数据下面是代码的实现 static class BlackingQueue { private int[] array = new int[1000]; private volatile int size = 0; private volatile int head =
2021-04-14 22:51:10
156
原创 线程——单例模式
首先我们要了解单例模式,那么什么是单例模式单例模式:如果一个类在程序中值存在一个实例 通过一定的编程手段来进行限制,防止不小心在代码中创建了多个实例单例模式的实现有二种方式一种是饿汉模式另一种是懒汉模式 下面我介绍给大家饿汉方式饿汉方式顾名思义就是饿了的人吃饭,只要是能吃的都会直接吃 ,这里对应到代码就是不管这个对象能不能用到先创建了这个对象在说 下面是代码的实现 //Singleton 单例 static class Singleton{ //1.创建一个私有
2021-04-14 17:59:00
2680
1
原创 LeetCode-1二个数之合
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6输出:[1,2
2021-04-12 20:18:27
108
原创 线程---线程安全解决方法——锁
上一篇我们了解到了线程有安全问题那么怎么能解决线程安全问题呢?那就是锁 //计数器 public static class Counter { public int count = 0 ; //增加方法 synchronized public void increase() { count++; } } public static void main(String[] args) thr
2021-04-09 18:44:01
105
原创 线程--线程安全问题
线程是一种并发编程模型那么什么是线程安全呢?接下来我们就以一个小例子来说明。 //计数器 public static class Counter { public int count = 0 ; //增加方法 public void increase() { count++; } } public static void main(String[] args) { Count
2021-04-08 16:35:37
126
原创 剑指offer_10二进制中一的个数(Java版)
题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。示例1输入10返回值2 public int numberOf(int n ) { // 计算机储存编码是二进制 所有可以直接用& 这个数与上1是否 为0 可以判断最后一位是否为1 然后将左移 一位 //循环条件 32次 也可以是当1 为0 时 即左移32次 缺点:时间复杂多过大 int count = 0 ; int
2021-03-25 11:09:00
131
原创 剑指offer_12调整数组使奇数位于偶数的前面(Java版)
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例1输入[1,2,3,4]返回值[1,3,2,4]整体思路:运用直接插入排序的思想 public static void reOrderArray(int [] array) { //相对位置不变,稳定性 //插入排序的思想 // .定义一个k值 标记已经摆好奇数的
2021-03-25 11:03:30
101
原创 剑指offer-07 用二个栈来实现队列 (Java版)
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路 1.添加对于队列和栈一样 假设stack1为添加的容器 直接添加就可以2. 删除操作 先判断二个栈是否为空 为空抛出异常3. 判断stack 2 是否为空 为空将stack1 的所有元素添加 到 stack2 里面 出栈从stack2 出.Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> st
2021-03-19 21:31:47
73
原创 剑指offer-06 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入复制[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值复制{1,2,5,3,4,6,7}思路:1如果二个数组都为空的时候直接返回一个空的节点2.前序遍历的第一个节点为树的根节点然后找到第二个数组的那个值,找到那个值.
2021-03-19 20:07:45
78
原创 Java三大特性——多态
多态多态就是同一行为具有多个不同表现能力的能力简单的讲多态就是不同子类对于父类同一方法的不同表现多态性是指允许不同类型的子类对同一条消息所作出的不同的响应多态的存在的必要性继承 :要有继承关系重写 :子类需要重写父类的方法父类的引用指向子类多态的优点可替换性:多态对已有代码具有可替换性可扩展性:新增加的子类对已有子类的多态性,继承性以及其他特性的运行和操作没任何影响接口性:多态是父类通过方法签名,向子类提供一个公共接口,由子类来完善或者覆盖它而实现的灵活性:它在应用中体现了灵活多样的
2021-03-14 18:31:48
145
原创 剑指offer -05 从尾到头打印链表
题目描述:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入复制{67,0,24,58}返回值复制[58,24,0,67]解题思路:1.然后遍历那个要逆转的链使用ArrayList的方法头插class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}import java.util.ArrayList;
2021-03-14 16:36:28
97
原创 Java三大特性之封装
封装是指一种抽象性函式接口(有且只有一个一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口)的实现细节包装,隐藏起来的方法。封装最主要的功能就是在于我们修改自己实现的代码,而不用修改那些调用我们代码的程序片段。简单的说就是为了我们能够更好的维护代码,也让我们更容易用整体的思想理解业务,也加强了代码的安全性。优点:优秀的封装可以降低代码的耦合性...
2021-03-13 10:13:16
80
原创 Java的三大特性之—— 继承
继承是Java的三大特性之一对于继承我们现实中听到最多的就是某某某继承父亲的家产,在Java中也就是is–a 的关系,即子类继承父类的特征和行为,使得子类对象具有父类的方法和属性 ,但是不能继承父类的私有方法子类也可以拥有自己的独有的属性和方法,即子类可以对父类进行拓展Java 的继承是单继承,不能是多继承 但是可以 多重继承 即 A继承B B继承C ,即A是B 的父类 ,B是C的父类继承的意义是为了重复利用代码...
2021-03-12 20:34:41
248
3
原创 剑指offer 03二维数组的查找 和 04替换空格
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数输入。思路1.先进行二位维数组的遍历:二维数组可以理解为一个数组中的每个元素都是一个数据,即运用二次foreach 即可完成二维数组的遍历2.进行元素的比较public boolean Find (int target,int[][] array) { for (int[] arrays:
2021-03-09 17:30:26
90
原创 ArraryList 的常用方法的实现
package ArraryList;import java.util.Arrays;public class MyArrayList {private Integer[] arrays ;private int size ;MyArrayList () { arrays = new Integer[10] ; size = 0 ;} @Override public String toString() { return "MyArrayLi
2021-03-08 23:37:58
244
原创 实现一个自己的HTTP服务器
实现一个HTTP服务器 ,这里我们用到TCP的服务器 再按照HTTP协议的规则来实现一个服务器代码如下:/*实现自己的http服务器 */import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.HashMap;import java.util.Map;import java.util.concurrent.LinkedBlockingQueue;import java.u
2021-01-17 21:11:09
406
原创 关于自定义HTTP服务器的相关知识点汇总
1 .HTTP是什么?HTTP是一个超文本传输语言(协议),它是在应用层,它的实现是依赖于TCP/IP 实现的 (所有的网站应用都是HTTP协议 ,大部分的手机APP ,通讯的时候,都是使用HTTP协议)2. HTTP 和 HTTPS 的区别是什么?1.HTTP 和HTTPS 都是调用TCP来实现交互的.2.HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者默认是80,后者默认是443.3.HTTP的连接是简单的,是无状态的HTTPS是由SSL+HTTP协议构建的可进行加密传输
2021-01-17 21:05:07
200
原创 2020-11-02
位运算符和移位运算符位运算符在Java中她的最小数据的操作的最小单位不是字节,而是二进制位位运算符主要有四个& | ~ ^位操作符是二进制位运算 就是说先把数转换为二进制在进行相应的运算按位与&:如果二个二进制都为1的话则结果为1否则为0int a = 10 ; int b = 20 ;System.out.println(a & b);a 转化为二进制 0 1 0 1 0b 转化为二进制 1 0 1 0 0根据按位与运算可得出 0
2020-11-02 20:44:52
84
原创 CSDN自己的第一篇博客
自我介绍我是一枚来自软件工程的大二学生 ,想要成为一个Java工程师,我会以此目标来努力的学习,来进一步丰富自己的大学生活 。我相信自己一定可以实现这个目标的。...
2019-10-09 08:42:51
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人