<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lick_java的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lick_java</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lick_java]]></copyright><item><title><![CDATA[java使用protobuf一个简单的小demo]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/123555905</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/123555905</guid><author>lick_java</author><pubDate>Fri, 18 Mar 2022 12:11:26 +0800</pubDate><description><![CDATA[简介：
最近接手了一个数据量较大的项目，项目整体主要以kafka分发传递数据，一部分是json格式数据，但是大部分都用到了proto格式数据，之前也没解析过这种格式的数据，搜了半天的文档，写了个demo总结了下
提示：不知道protobuf的可以先百度一下

首先搭建基础环境：
1.先下载一个proto文件编译器
可以参考这篇文章：protoc下载
然后记得配置环境变量
]]></description><category></category></item><item><title><![CDATA[小型的java WEB项目一个页面（第三段）jsp界面]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/107125039</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/107125039</guid><author>lick_java</author><pubDate>Sat, 04 Jul 2020 17:23:59 +0800</pubDate><description><![CDATA[注：这是一个简单的展示数据在前端的功能；在后期，我会继续分享SSM框架和一些有趣的知识点，
这里所需的css样式和js样式就不列出来了
注意如果在jsp页面使用for循环一定要加如下的一行代码：

通过for循环遍历list集合，将从后端传入的集合展示在前端页面

jsp展示界面：

如果没加过滤器，启动后在浏览器应该是这样的页面；需要把上面的域名加上访问的资源：

然后跳转页面：
注意看搜索栏

最终展示效果：

想要通过前端页面CURD可在URL追加参数；
！！！参数很重要，数据的作用域也非常重要

以]]></description><category></category></item><item><title><![CDATA[小型的java   WEB项目一个页面（第二段）后端界面及数据库（第三段为前端jsp页面）]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/107123190</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/107123190</guid><author>lick_java</author><pubDate>Sat, 04 Jul 2020 17:23:12 +0800</pubDate><description><![CDATA[工具类：
1.自己封装的BaseDao

2.一个计算分页的工具类

Dao层处理sql语句
1.准备一个接口：

前端页面展示：

接口实现：
（注意，查询结果必须以while循环遍历）

数据库表：

实体类：

中间Service过渡层：
这里Service层和dao层接口的方法一致
一个多态的使用

Servlet完成前后端交互
Servlet层新建一个Servlet       起名字叫做LoginServlet

在doPost方法内调用doGet方法传参request 和 response
（]]></description><category></category></item><item><title><![CDATA[一个java的小型WEB项目一个页面（IDEA + 前后端代码）--一些基本配置 分为三篇（第1篇）]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/107122875</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/107122875</guid><author>lick_java</author><pubDate>Sat, 04 Jul 2020 17:22:37 +0800</pubDate><description><![CDATA[以jsp前端页面完成的一个小项目，
准备工作:
1.新建一个项目
勾选web

配置一些东西

点进去找到后点击我们自己创建的lib目录，这里面保存的是我们的jar包，


然后会把lib勾选，点击apply，点击OK，然后配置Tomcat，我的Tomcat服务器是8.5.4版本的





我的jar包：

一个小技巧，修改idea的背景图片：

找到设置

找到background image点进去就可以选择想要替换的背景

...]]></description><category></category></item><item><title><![CDATA[mysql数据库练习题（多表联查）40道题，嵌套select和in和year的使用]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106571519</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106571519</guid><author>lick_java</author><pubDate>Sat, 06 Jun 2020 17:19:41 +0800</pubDate><description><![CDATA[数据库结构
创建四张表 分别存储 学生信息 课程信息 分数 讲师信息表 存储相应数据
学生信息表 Student
字段名	字段类型	字段约束 / 含义
Sno	Varchar(3)	Not null  / 学员编号
Sname	Varchar(4)	Not null  / 学员姓名
Ssex	Varchar(2)	Not null  / 性别
Sbirthday	Datetime	生日
Classnum	Varchar(5)	班级号
CREATE TABLE STUDENT
(
SNO VARCHAR(3)]]></description><category></category></item><item><title><![CDATA[MySQL数据库的使用（多表联查）]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106565821</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106565821</guid><author>lick_java</author><pubDate>Fri, 05 Jun 2020 14:30:05 +0800</pubDate><description><![CDATA[创建表
创建用户表
create table user(
userId int primary key auto_increment,
username varchar(20) not null,
password varchar(18) not null,
address varchar(100),
phone varchar(11)
);
#创建分类表
create table category(
cid varchar(32) PRIMARY KEY ,
cname varchar(100) not ]]></description><category></category></item><item><title><![CDATA[反射]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106324978</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106324978</guid><author>lick_java</author><pubDate>Mon, 25 May 2020 02:35:43 +0800</pubDate><description><![CDATA[反射的概念：
java文件和class文件的关系
Java文件(.java)就是我的代码，包含了所有的内容，而且现在貌似我们的所有代码都是一个class类
 or interface接口 ==&gt; 单独一个 .java 文件。
.class 字节码文件是二进制文件，是根据.java文件，通过Java编译器(javac)编译得到。并且.class字节码
文件可以让JVM执行。

之前:
Demo1.java
javac Demo1.java ==&gt; 编译代码 得到Demo1.class
java D]]></description><category></category></item><item><title><![CDATA[缓冲字节流和缓冲字符流、StringBuffer]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106271416</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106271416</guid><author>lick_java</author><pubDate>Fri, 22 May 2020 00:57:49 +0800</pubDate><description><![CDATA[概述
BufferedInputStream
字节缓冲输入流

构造方法 Constructor
BufferedInputStream(InputStream in);
这里需要的参数是字节输入流对象
成员方法 Method
int read();
int read(byte[] buf);
其实就是InputStream中使用的方法。

Buffer
edOutputStream
字节缓冲输出流

构造方法 Constructor
BufferedOutputStream(OutputStream ou]]></description><category></category></item><item><title><![CDATA[java中的IO输入输出流]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106248173</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106248173</guid><author>lick_java</author><pubDate>Thu, 21 May 2020 02:09:47 +0800</pubDate><description><![CDATA[概述
IO参照物是当前程序使用内存
I
input 从硬盘读取数据到内存!!!read 读
O
output 从内存写入数据到硬盘!!! write 写
直播为例:
OBS推流软件 --&gt; 浏览器 OBS输出数据到浏览器
磊哥的键盘，屏幕，声音 --&gt; OBS 对于OBS而言这是输入
浏览器 --&gt; 屏幕，耳机  对于浏览器而言，输出
对于Java而言:
按照处理单位来看
字节流
所有的数据按照字节方式进行传输！！！
字符流
数据按照当前系统采用的编码集方式进行字符操作，该操作局限性很大！]]></description><category></category></item><item><title><![CDATA[java文件类（File类详细分析及一些常用方法）]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106248157</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106248157</guid><author>lick_java</author><pubDate>Thu, 21 May 2020 01:53:04 +0800</pubDate><description><![CDATA[File类概述
SUN公司提供给程序员操作文件以及文件夹对应的类。这里涉及到对于文件以及文件夹的增删改查操作。
不能操作文件内容，不能对于文件进行读写操作。IO流内容。

路径问题
相对路径
	针对当前工作目录，去往其他目录最短路径，相对路径
	. 当前工作目录
	.. 当前工作目录的上级目录
绝对路径:
	Windows 操作系统绝对路径是从当前盘符开始，C D E F
	Linux macOS Unix 根目录 / 所有的路径都是从根目录开始 后期使用的服务器
	软件都是采用对应方式

构造方法
Fil]]></description><category></category></item><item><title><![CDATA[java中map接口及常用方法]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106248120</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106248120</guid><author>lick_java</author><pubDate>Thu, 21 May 2020 01:38:07 +0800</pubDate><description><![CDATA[概述
Map 地图，映射关系。
ORM 对象关系映射 类对象 &lt;==&gt; 数据库数据
双边队列
数据存储形式都是键(Key)值(Value)对形式
表格??
姓名 骚磊
年龄 16
性别 男
Map双边队列中对于数据存储类型
	有限制 存储数据类型在创建Map双边队列时进行约束，保证数据类型一致化
	但是也没限制 Map可以满足任意类型

Map使用了两个泛型！！！
	Map&lt;K, V&gt;

增
增
	put(K key, V value);
		添加符合Map要求的键值对存入到双边队列]]></description><category></category></item><item><title><![CDATA[java中的set集合]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106184955</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106184955</guid><author>lick_java</author><pubDate>Mon, 18 May 2020 01:39:37 +0800</pubDate><description><![CDATA[概述
Set接口数据存储
1. 无序
2. 不可重复
无序
添加顺序和存储不一致！！！
不可重复
Set存储的元素不允许出现重复情况
HashSet
底层存储数据的结构是哈希表
TreeSet
底层存储数据的结构是[平衡二叉树]
Set集合使用的方法都是Collection接口中的方法，没有特殊方法
但是Set接口中两个重要的实现类HashSet和TreeSet存储过程中，需要依赖于其他方法的实现

hashSet概述
HashSet底层存储数据的结构是一个哈希表是一个表结构
表结构，我们可以认为是Exce]]></description><category></category></item><item><title><![CDATA[java中的linkdList]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106184946</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106184946</guid><author>lick_java</author><pubDate>Mon, 18 May 2020 01:33:38 +0800</pubDate><description><![CDATA[linkedList概述
底层存储数据是一个双向链表结构
自行车链子 就是一个生活中链表结构，环环相扣，替换，拆除非常方便
需要了解的方法
LinkedList使用的方法都是从List接口实现而来的方法，需要了解的是LinkedList特有方法：
boolean addFirst(E e);
在当前链表开始位置加元素
boolean addLast(E e);
在当前链表末尾添加元素
E getFirst();
获取第一个Node节点元素数据
E getLast();
获取末尾Node节点元素数据
E re]]></description><category></category></item><item><title><![CDATA[JAVA中的【list接口】和（内存地址）]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106153349</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106153349</guid><author>lick_java</author><pubDate>Sat, 16 May 2020 04:09:10 +0800</pubDate><description><![CDATA[概述
List接口特征：
1. 数据存储可重复。
2. 有序，添加顺序和保存顺序一致。
常用方法
增
boolean add(E e);	
List接口继承Collection接口 add方法，使用操作和Collection一致，并且这
里采用的添加方式是【尾插法】
boolean add(int index, E e);
	List接口【特有方法】，在指定位置，添加指定元素。
	
boolean addAll(Collection&lt;? extends E&gt; c);
	List接口继承Colle]]></description><category></category></item><item><title><![CDATA[java中的【集合】]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106131665</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106131665</guid><author>lick_java</author><pubDate>Thu, 14 May 2020 23:55:45 +0800</pubDate><description><![CDATA[集合的概念
目前代码中对于多个数据处理过程中，我们采用的方式是数组方式。
数组操作存在的问题:
1. 复用度差！！！
目前对于数据操作有且只能支持一个数据类型，一旦需要操作其他类型，全部
重构，从头来过
2. 空间固定！！！
数组的空间一旦在创建过程中确定，空间无法修改。
3. 方法较少！！！
add remove modify get 。。。
自己写的！！！方法自己实现，体验不好！！！Java中对于数组操作没有提供
太多的有效方法
以上问题集合都可以解决！！！
1. 复用性，没有问题！！！
集合创建采用了]]></description><category></category></item><item><title><![CDATA[java中【泛型】]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106111027</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106111027</guid><author>lick_java</author><pubDate>Thu, 14 May 2020 01:05:20 +0800</pubDate><description><![CDATA[泛型格式
Java中泛型规定:
&lt;自定义无意义英文大写单字母占位符&gt;
一般常用：
 Type
 Element
 Key
 Value
泛型可以约束
方法
类
接口
万物皆对象
Java中数据类型其实是分两大类
1. 基本数据类型
byte short int long float double char boolean
2. 引用数据类型
Java中有一个概念
万物皆对象。
所以Java中对于基本数据类型也做了封装，完成了对于基本数据类型的【包装类】
基本数据类型对应的包装类
byte    ]]></description><category></category></item><item><title><![CDATA[java中String类及一些String类自带的常用方法]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106089300</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106089300</guid><author>lick_java</author><pubDate>Wed, 13 May 2020 01:12:55 +0800</pubDate><description><![CDATA[String类型概述
又爱又恨！！！
爱:
字符串基本上就是数据的保存，传输，处理非常重要的一种手段。
恨:
解析过程非常烦人，需要掌握熟记很多方法，同时需要有一定的技巧和灵性
String字符串类型是Java中引用数据类型，并且String类型是使用final修饰，没有自己的子类。

字符串的存储也是非常个性的一件事情，分两种情况，
一种是在内存的数据区
一种是在内存的堆区
字符串是一个常量！！！
字符串确定之后无法修改！！！
一些常用方法
public class Judge {
	public sta]]></description><category></category></item><item><title><![CDATA[objec类]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106064933</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106064933</guid><author>lick_java</author><pubDate>Mon, 11 May 2020 23:03:09 +0800</pubDate><description><![CDATA[面向对象语言中都会有一个类是作为所有类的基类，万物之根本！！！
Object是Java中所有类的基类，根类。Object类是任何一个类的直接父类或者间接父类。
Object提供了一些可以让任何一个Java中类型使用的方法
	toString方法
	equals方法
	hashCode方法
还存在一些和线程相关的方法:
	wait();
	notify();
	notifyAll();
	
Object作为一种数据类型，如果按照Java数据类型规范
	一个方法需要的参数是Object类型，那么该方法可以传入任]]></description><category></category></item><item><title><![CDATA[学生管理系统1.1（排序算法，计数器思想）]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106045659</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106045659</guid><author>lick_java</author><pubDate>Mon, 11 May 2020 00:31:23 +0800</pubDate><description><![CDATA[实体类：
package com.mhj.student.entity;

public class Student {
	/**
	 * 学生管理系统
	 *  实现类：
	 *  iD
	 *  名字
	 *  年龄
	 *  性别
	 *  成绩
	 */
	private int iD;
	private String name;
	private int age;
	private char gender;
	private int score;
	
	// 无参构造方法
	public Stud]]></description><category></category></item><item><title><![CDATA[（增删改查）续：改和排序]]></title><link>https://blog.youkuaiyun.com/lick_java/article/details/106045609</link><guid>https://blog.youkuaiyun.com/lick_java/article/details/106045609</guid><author>lick_java</author><pubDate>Mon, 11 May 2020 00:25:15 +0800</pubDate><description><![CDATA[/**
	 * 该方法是修改对应id的学生信息的方法
	 * @param id 需要修改学生的id
	 * @return 修改成功返回true，失败返回false
	 */
	public boolean modify(int id) {
		// 调用类内get方法
		Student stu = get(id);
		
		// 判断对象的值是否为null
		if (null == stu) {
			System.out.println("id信息有误");
			return false;
.]]></description><category></category></item></channel></rss>