数据结构——哈夫曼树的优缺点
哈夫曼树的优点与二进制编码方式对比
1、码字不同。哈夫曼bai所构造的du码字不是唯一的,对于同zhi一个信息源,dao无论上述的前后顺序如何zhuan排列,它的平均码长是不会改变的,所以他的优点是编码效率唯一性。而二进制编码所构造的码字是唯一。
2、长度不同哈夫曼编码是依据字符出现概率来构造异字头的平均长度最短的码字,比较精准,二进制编码是用预先规定的方法将文字、数字或其他对象编成二进制的数码,或将信息、数据转换成规定的二进制电脉冲信号。二进制是最基础的编码。
3、稳定性不同哈夫曼编码的稳定性比较差。如果改变其中一位数据就会产生改变。二进制编码具有抗干扰能力强,可靠性高等优点。
JDK的安装与配置
前期准备
Oracle官方下载:https://www.oracle.com/cn/java/technologies/oracle-java-archive-downloads.html
JDK华为镜像站(支持主流版本):https://repo.huaweicloud.com/java/jdk/
在官网下载可能要登陆Oracle账户,建议使用镜像站
目前主流使用JDK8,使用本次使用jdk8来做演示。具体版本:jdk-8u202-windows-x64
还有一种openjdk,个人建议还是安装完整的JDK。
关于JDK收费问题(引用https://juejin.im/post/5ccce2006fb9a032143770e4)
2019年4月16日,Oracle发布了新的JDK 8的更新,版本号为8u211和8u212。与以往不同的是,新版本的许可协议从BCL换成了OTN,这就意味着,你不能在生产环境使用这个版本了。如果你想继续使用8u211/8u212,或者之后发布的新版本,就需要给Oracle交钱了。
当然,并不是你用了新版本的JDK就要交钱,这个时候要区分私用和商用:
私用 ...
SpringBoot框架
一、Hello World(一)SpringBoot简介回顾什么是SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。
Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
Spring是如何简化Java开发的为了降低Java开发的复杂性,Spring采用了以下4种关键策略:
1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;
2、通过IOC,依赖注入(DI)和面向接口实现松耦合;
3、基于切面(AOP)和惯例进行声明式编程;
4、通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;
什么是SpringBoot学过javaweb的同学就知道,开发一个web应用,从最初开始接触Servlet结合Tomcat, 跑出一个Hello Wolrld程序,是要经历特别多的步骤;后来就用了框架Struts,再后来是SpringMVC,到了现在的SpringBoot,过一两年又会有其他web框架出现;你们有经历过框架不断的演进,然后自己开发项目所有的技术也在不断的变化、改造吗 ...
SSM框架整合
前期准备环境:
IDEA
MySQL 5.7.19
Tomcat 9
Maven 3.6
要求:
需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;
数据库环境
创建一个存放书籍数据的数据库表
123456789101112131415161718CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',`bookName` VARCHAR(100) NOT NULL COMMENT '书名',`bookCounts` INT(11) NOT NULL COMMENT '数量',`detail` VARCHAR(200) NOT NULL COMMENT '描述',KEY `bookID` (`bookID`)) EN ...
SSM框架——SpringMVC
一、什么是SpringMVC1、回顾MVC1.1、什么是MVC
MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。
是将业务逻辑、数据、显示分离的方法来组织代码。
MVC主要作用是降低了视图与业务逻辑间的双向偶合。
MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。
Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。
最典型的MVC就是JSP + servlet + javabean的模式。
1.2、Model1时代 ...
SSM框架——Spring
一、Spring框架概述1、简介
Spring官方网站:https://spring.io/
Spring下载地址:https://repo.spring.io/release/org/springframework/spring/
github地址:https://github.com/spring-projects/spring-framework
Spring使创建Java企业应用程序变得容易。
Spring支持广泛的应用场景。
Spring是开源的。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
IoC(Inversion of Control)
AOP(Aspect Oriented Programming)
Spring的优点:
1、Spring是一个开源免费的框架 , 容器 .
2、Spring是一个轻量级的框架 , 非侵入式的 .
3、控制反转 IoC , 面向切面 Aop
4、对事物的支持 , 对框架的支持
2、组成
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心 ...
SSM框架——Mybatis
一、第一个Mybatis程序
Mybatis中文文档:https://mybatis.org/mybatis-3/zh/index.html
(一)创建数据库12345678910111213141516171819//创建数据库create databases mybatis;//使用数据库user mybatis;//创建表CREATE TABLE `user` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;//添加数 ...
Docker安装及教程
一.Docker简介
本教程的学习来源于https://www.bilibili.com/video/BV1og4y1q7M4
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 架构Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看着一个代码 ...
Java基础笔记
第一章 Java概述1.1 Java历史Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。
Java之父是詹姆斯.高斯林(James Gosling)。
1996年发布JDK1.0版。
目前最新的版本是Java12。我们学习的Java8。
1.2 Java语言最主要的特点
特点一:面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
特点二:健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
特点三:跨平台性
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”一次编写,处处运行。
原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。因为有了JVM,同一个Java 程序在三个不同的操作系统中都可以执行。这样就实现 ...
博客基本使用
基础步骤1、创建文章打开git,输入内容并回车
new1$ hexo new [layout] <title>
例如:
1$ hexo new 2020-05-03-Hexo博客基本使用指南
2、编辑文章文章头部12345678910111213141516---title: 文章标题tags: [Hexo, Fluid]index_img: /img/example.jpgbanner_img: /img/post_banner.jpgdate: 2019-10-10 10:00:00categories: - [Diary, PlayStation] - [Diary, Games] - [Life]tags: - PS3 - Games---以下是文章内容
解释:
title:文章的标题
tags:标签
categories:分类
index_img: 文章在首页的略缩图存放在 /source/img/example.jpg 目录下的图片(目录也可自定义,但必须在 source 目录下)。
banner_img: 文章页顶部大图,存放在/source/img/e ...