自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (3)
  • 收藏
  • 关注

原创 HTML 5入门基础

1.初识HTMLHTML:Hyper Text Markup Language(超文本标记语言)超文本:文字,图片,音频 ,视频,动画等W3C(万维网联盟,国际中立性技术标准机构)标准:结构化标准语言(HTML,XML)表现标准语言(CSS)行为标准(DOM,ECMAScript)HTML基本结构注释:IDEA快捷键 “Ctrl" + “/”, ​ ** tab键:输入h1,p等,按住tab键,即可快速生成相应标签***<!-- DOCTYPE: 告诉浏览器

2021-11-09 08:34:17 290

原创 剑指offer面试题8:二叉树的下一个节点

题目:给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。/** * @version 1.0 * @Author zjay * @Date: 2021/8/18$ * @Description: TODO * 题目:给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点? * 树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。 * 思路分析: * 关键点1:中序遍历的

2021-08-19 19:22:37 157 2

原创 剑指offer面试题7:重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,重建该二叉树。假设输入的前序遍历和中序遍历的结果都不包含重复的数字。例如,前序遍历{1,2,4,7,3,5,6,8},中序遍历{4,7,2,1,5,3,8,6},则重建该二叉树,并输出头节点。思路:根据根节点和根节点左右两边的值来确定左右子树,然后递归实现/** * @author: zjay * @version: 1.0 * @date: 2021/8/12 */public class Test7_BinaryTreeConstruct {

2021-08-19 19:21:37 129

原创 剑指offer面试题6:从尾到头打印链表

题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。**注意:**面试中,如果打算修改输入的数据,最好先问面试官是否允许修改,如上题是否可以反转链表,改变原来链表的结构。思路1:从尾到头打印,即“后进先出”,可以采用栈实现。每经过一个节点,就入栈,遍历完整个链表的时候,依次输出栈顶的值。思路2:用递归实现,递归本质是一个栈结构。即每访问一个节点的时候,先递归输出该节点的后继节点,再输出该节点本身。import java.util.Stack;/** * @author: zjay

2021-08-19 19:20:43 131

原创 剑指offer面试题5 :替换空格

目:实现一个函数,把字符串中的每个空格替换成"20%".例如,输入"We are happy.",则输出为"We%20are%20happy."。思路1:根据java特性,可以利用StringBuilder()和StringBuffer();2:从后往前复制。**注意:**如果从前往后复制会重复复制(移动)数字或字符多次,可以考虑从后往前复制。/** * @author: zjay * @version: 1.0 * @date: 2021/8/10 * * 题目:实现一个函数,把字符串中

2021-08-19 19:19:20 80

原创 剑指offer面试题4: 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:选取二维数组右上角或左下角的数字进行比较,以右上角(所在行最大,所在列最小)为例,若该数小于右上角,由于每列也是递增的,所以该数小于该列所有数,因此可以去掉该列,不在该列中比较。若该数大于右上角的数,说明该数不在此行(此时,右边的列已经全部去掉,只需往下查找即可)。依次类推,找到最后。若找到,则返回,没有,则失败。/* * 题

2021-08-19 19:16:39 101

原创 剑指offer面试题3:数组中的重复数字

知识:数组是最简单的一种数据结构,占据一块连续的内存并按顺序存储数据。创建数组时,需要首先指定数组的大小,然后根据大小分配内存。数组的空间效率不高,会有空闲区域没有充分利用。由于数组内存连续,可以根据下标在O(1)时间访问任意元素。可以用数组实现简单的哈希表:数组下标设为哈希表键值(Key),数组中每一个数字设为哈希表值(Value),形成“键-值”配对。题目1:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,不知道有几个数字重复了和重复的次数。请找出数组种任意一个重复的数

2021-08-19 19:15:21 83

原创 剑指Offer面试题2:实现Singleton模式

题目:设计一个类,只能生成该类的一个实例背景:面试中很多公司喜欢问一些设计模式相关问题。常用模式中,Singleton是唯一一个用几十行代码能完整实现的模式。因此,写一个Singleton的类型很常见。知识:单例模式特点:单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例。单例模式保证了全局对象的唯一性,避免状态不一致。线程安全问题:在获取单例的时候,保证不能产生多个实例对象。同时,注意单例对象内的实例变量是会被多线程共享的。单例模式实现方法有5种。

2021-08-19 19:11:22 86

原创 Java设计模式一:单例设计模式

实现单例(Singleton)模式题目:设计一个类,只能生成该类的一个实例背景:面试中很多公司喜欢问一些设计模式相关问题。常用模式中,Singleton是唯一一个用几十行代码能完整实现的模式。因此,写一个Singleton的类型很常见。知识:单例模式特点:单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例。单例模式保证了全局对象的唯一性,避免状态不一致。线程安全问题:在获取单例的时候,保证不能产生多个实例对象。同时,注意单例对象内的实例变量是会被多线

2021-08-04 22:28:12 113

原创 JVM探究(二):堆和垃圾回收,GC四种算法,JMM

9 堆Heap, 一个JVM只有一个堆内存,堆内存大小可调节.默认情况下:分配的总内存是电脑内存的1/4,初始化的内存:1/64堆内存分为三个区域:新生区(伊甸园区)(Young/New)养老区(Old)永久区(Perm)GC垃圾回收,主要是在伊甸园区(轻GC)和养老区(重GC).幸存0区和幸存1区是动态交换的,经过1次或者多次GC仍存活的对象,进入幸存区.超过次数阈值后,进入养老区,养老区内对象一般不会被回收.内存满了(OOM),堆内存不够,严重错误.99%的对象都是临时对象.出现O

2021-07-28 23:49:13 347

原创 JVM探究(一):体系结构,沙箱,双亲委派,栈

1. JVM 位置JDK>JRE>JVM ---->都与OS打交道JDK(java development kit0 是Java开发工具包,包括了Java运行环境JRE,Java 工具和 Java 基础类库。JRE(Java runtime environment)为java 的运行环境,包括JVM和Java核心类库。JVM(Java virtual machine)即Java虚拟机,整个java 实现跨平台的的最核心部分。所有java 程序首先被编译成java.class字节码

2021-07-28 23:44:22 105

原创 Java注解和反射

Java注解和反射1.注解注解(Annotation)从JDK5.0引入,不是程序本身,可以对程序作出解释(和注释(comment)一样),但可以被其他程序(如编译器)读取Annotation格式:"@注释名",可以添加一些参数值使用:可以附加在package,class,method,field等上面,相当于添加额外的辅助信息,通过反射机制编程实现对这些元数据的访问。1.1 内置注解@override: 定义在java.lang.Override中,只适用修辞方法,表示该方法重写超类中

2021-07-24 23:56:51 137 1

原创 java IO流(一)文件, InputStream,OutputStream,Reader,Writer

JAVA IO流(一)(一) 文件1.概念文件就是保存数据的地方文件流文件在程序中是以流的形式来操作的。java程序(内存) <--------> 文件(磁盘)输入,输出是针对 内存而言的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径2.常用文件操作创建文件对象的相关构造器和方法(常用)new File(String pathname) //根据路径

2021-07-20 14:38:18 227

原创 Java多线程(三):线程通信(生产者/消费者)

java多线程(三)线程通信:生产者/消费者场景:两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。分析:对于生产者,没有生产产品前,要通知消费者等待,生产产品后,通知消费者消费。对于消费者,消费后,通知生产者生产新的产品消费。java提供的解决线程通信问题的

2021-07-19 16:22:34 181 3

原创 Java多线程:线程优先级,同步,死锁

Java多线程(二)1.线程优先级java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行线程的优先级数字表示范围:1~10Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;获取优先级:getPriority(); 改变优先级:setPriority(int xxx);优先级低表示被CPU调度的概率低,无法保证优先级高一定先执行

2021-07-19 11:13:38 341 2

原创 Java多线程(一)

Java 多线程(一)程序(静态)–进程(动态)–线程(CPU调度和执行的单位)程序运行时,自己没有创建线程,后台也会有多个线程,如主线程,垃圾挥手进程一个进程中,开辟了多个线程,线程的运行由调度器(与OS相关)安排调度,顺序不能人为干预对同一资源操作时,存在资源抢夺问题,需要加入并发控制线程会带来额外开销(调度等)进程创建三种方式:继承Thread类(重点),实现Runnable接口(重点),实现Callable接口(初级阶段只需了解)Thread自定义线程类继承 Thread 类

2021-07-17 22:41:19 42

原创 java 网络编程

网络编程计算机网络:将地理位置不同的具有独立功能的多台计算计算及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:数据交换,通信需要解决的问题:如何准确定位网络上的一台主机和这台主机的某个资源(ip + 端口号)找到主机后,如何传输数据?(网络通信协议(主要TCP,UDP))1.1网络通信要素IP类:InetAddress本机ip(localhost):127.0.0.1ip地址分

2021-07-14 22:45:19 47 1

原创 面向对象(二):抽象类,内部类,接口,异常

Java面向对象(二)抽象类abstract 修饰的方法和类为抽象类和抽象方法抽象类可以没有抽象方法,有抽象方法的类必须声明为抽象类继承抽象类的子类必须实现抽象类的方法抽象类不能使用new ,必须靠子类实现抽象类中可以有普通方法抽象类可以有构造方法,构造方法作用可以初始化变量,另一个是实例化变量。抽象类不能实例化,但可以初始化接口接口只有抽象方法的定义,定义一组规则。声明类的关键字:class.声明接口的关键字:interface接口中的所有方法都是抽象的,默认有public ab

2021-07-09 00:23:38 85

原创 面向对象:封装,继承,多态,static

面向对象(一)基本概念描述复杂事务,从宏观上整体分析,使用面向对象的思路分析整个系统。具体到微观操作,用面向过程(一步一步做)的思路去处理。面向对象编程的本质:以类的方式组织代码,以对象的组织(封装)数据面向对象三大特性:封装,继承,多态类是一种抽象的数据类型,对某一类事务的整体描述和定义,不能代表一个具体的事物。如Person,Car类。类里面只有成员变量(字段,Field)和方法。类实例化后会返回一个自己的对象对象是抽象概念的具体实例。比如张三是Person类的一个实例。使用n

2021-07-08 22:56:08 83

原创 java数组知识

java数组数组基本概念数组定义:相同类型数据的有序集合,通过下标访问数组中的数据元素,数组下标从0开始数组创建:必须先声明数组: int[] array = new int[arraySize]; //arraySize代表数组大小,数组一经声明,大小无法改变使用new操作符创建数组获取数组长度:array.length数组初始化:静态初始化(声明的时候直接赋值)int [] a = {1,2,3};Man[] mans = {new Man(1,1) , new Man(2

2021-07-04 22:28:41 54

原创 java方法重载和简单计算器

Java方法**方法重载:**一个类中,有相同的函数名称,但形参不同的函数重载规则:方法名称必须相同参数列表必须不同(个数不同,类型不同,参数排列顺序不同等)返回类型可以相同可以不同public class MethodDemo { public static void main(String[] args) { int a = 1; int b = 2; int c = 3; //方法重载测试 int

2021-07-02 15:22:36 1450 1

原创 Java基础--流程控制

Java基础–流程控制Scanner 对象实现程序和人的交互,通过Scanner 类获取用户的输入。语法:导包 import java.util.Scanner基本语法:Scanner s = new Scanner(System.in);用法:通过Scanner 类的next() 和 nextLine() 方法获取输入的字符串,使用hasNext() 与 hasNextLine()判断是否还有输入的数据。public class ScannerDemo { public sta

2021-07-01 15:33:19 70

原创 Java基础知识

Java基础知识基本概念JDK(Java开发工具)> JRE (Java 运行环境) > JVM(Java虚拟机)Java为强类型语言,要求变量的使用必须先定义后使用Java基本数据类型(8种):基本类型:(整数型 byte_1,short_2,int_4,long_8),浮点型(float_4,double_8),字符类型(char_2),布尔型(boolean_1),引用类型:类,接口,数组(String 属于引用类型)整数表示: 二进制数字开头0b ,八进制 0,

2021-06-30 17:54:28 39

原创 Markdown学习笔记

Markdown学习标题:”# #“+”空格“+”内容“,#的数量代表标题级数,最高6字体加粗:xxx ,语句两边使用两个"**"包围住,即可加粗斜体:xxx,语句两边使用一个”*“包围住,即可变成斜体立即推:斜体加粗,三个”*“围住删除线:”~~“双波浪线围住引用读书人的事怎么能叫x呢英文”>“加空格表示后面的话是你借用大佬的话,来达成自己的某某目的分割线三个”-“,”*“符号三个杠精组成一条分割线~图片图片格式:"!" + [图片名] + (图片路径(网络或本

2021-06-29 16:08:38 48

原创 Computing Arbitrary Functions of Encrypted Data(论文翻译)

本文主要对《Computing Arbitrary Functions of Encrypted DataCraig Gentry》进行了翻译,后面的文章会介绍本人对这篇文章的理解

2020-05-18 20:08:21 1093 2

研究生算法期末考试复习资料总计docx

计算机算法设计与分析考试总结的资料,主要是常见算法的简单应用,实验室小伙伴一起整理的复习资料,期末复习考试必备,有需要的可以下载哦

2020-06-02

操作系统实验6

操作系统实验报告

2017-05-23

操作系统实验

操作系统实验报告

2017-05-23

空空如也

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

TA关注的人

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