- Linux下基于C++11的socket网络编程(基础版本)
吃拉面的小波
C++网络编程linux网络c++
第一:socket的基础知识略,网上有很多这样的知识,我觉得他们应该讲的比我好。我是跟着韩国人尹圣雨写的《TCP/IP网络编程》这本书学的。第二:使用的线程库C++11std::thread在经过自己简单的封装第三:声明因为我也是初学,可能写的不好,封装的也不好,我写这篇文章,只是希望帮助很基础的初学者,慢慢的接触socket,也给自己记录一下学习的经过。所以,如果错误的,或者不好的地方,望各位多
- Java 多线程并发编程面试笔录一览
weixin_34318272
面试pythonjava
2019独角兽企业重金招聘Python工程师标准>>>知识体系图:1、线程是什么?线程是进程中独立运行的子任务。2、创建线程的方式方式一:将类声明为Thread的子类。该子类应重写Thread类的run方法方式二:声明实现Runnable接口的类。该类然后实现run方法推荐方式二,因为接口方式比继承方式更灵活,也减少程序间的耦合。3、获取当前线程信息?Thread.currentThread()4
- FlatBuffers(概念、原理及优势、在TS中的使用)
前端杂货铺
TodoList100个小知识FlatBuffersJSON序列化反序列化
个人简介个人主页:前端杂货铺♂️学习方向:主攻前端方向,正逐渐往全干发展个人状态:研发工程师,现效力于中国工业软件事业人生格言:积跬步至千里,积小流成江海推荐学习:前端面试宝典100个小功能Vue2Vue3Vue2/3项目实战Node.js实战Three.js个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧文章目录介绍在Vue中使用FlatBuffersFlatBuff
- .NET多线程任务实现的几种方法及线程等待全面分析
百锦再@新空间
包罗万象.netandroidtaskThread线程并发线程池
文章目录1.引言2..NET多线程编程基础2.1线程概念回顾2.2.NET线程模型概述3.多线程任务实现方法3.1Thread类实现3.2ThreadPool实现3.3TaskParallelLibrary(TPL)3.4Parallel类3.5BackgroundWorker组件3.6Async/Await模式3.7各种方法的比较与选择4.线程等待机制详解4.1基本等待方法4.2同步原语4.3异
- 06-three.js 创建自己的缓冲几何体
四喜花露水
Threejavascript前端开发语言
Three.jsJourney—LearnWebGLwithThree.jsTheultimateThree.jscoursewhetheryouareabeginneroramoreadvanceddeveloperhttps://threejs-journey.com/?c=p3关键点:1.newFloat32Array()2.newTHREE.BufferAttribute()3.geome
- java 导出pdf去除边框_docx4j生成pdf时,如何指定pdf的页边框
生成pdf:publicStringsavePdf(WordprocessingMLPackagewordMLPackage,Mapdata)throwsException{StringpdfDir=getFilePath()+".pdf";Filefile=newFile(pdfDir);FileUtils.createDir(file);//使用默认的FOSettingssettings.se
- 如何实现聊天模型响应流式处理
yunwu12777
langchain
在现代人工智能应用中,流式处理聊天模型的响应成为一种常见需求,特别是在需要实时输出或大规模处理时。本文将详细介绍如何在Python中实现聊天模型的同步和异步流式处理,使用langchain库中提供的ChatAnthropic模型作为示例。技术背景介绍流式处理是指从模型逐步获取输出,而不是等待整个输出完成。这对于处理长文本生成或需要动态响应的应用场景特别有用。langchain库中的聊天模型实现了R
- python中解决Chrome中文字体显示为方框的问题
张苹果博客
pythonchrome开发语言
当您在CentOS或RHEL系统上处理中文内容时,可能会遇到字体显示为方框或乱码的情况。这是因为系统默认没有安装中文字体包。本指南将详细介绍如何正确安装和配置中文字体。原文地址:python中解决Chrome中文字体显示为方框的问题-张苹果博客字体显示问题示例如下:在CentOS/RHEL上安装中文字体的正确方法1.使用yum安装中文字体#安装文泉驿中文字体sudoyuminstall-ywqy-
- ZooKeeper深度面试指南二
搬砖的小熊猫
zookeeper面试分布式
一、Chroot特性:多租户隔离的命名空间功能原理Chroot(ChangeRoot)是ZooKeeper3.2.0引入的关键特性,允许客户端将操作限制在指定子树下。客户端连接时通过路径后缀(如127.0.0.1:2181/app1)设置命名空间,所有操作(如创建节点/config)实际映射为/app1/config,实现物理集群内的逻辑隔离。应用场景多应用共享集群:不同业务(支付/订单)共用Zo
- 浏览器原理与API
天涯学馆
Web大前端全栈架构javascript前端
浏览器原理与渲染机制浏览器架构概述现代浏览器通常由以下核心组件构成:用户界面(UI):地址栏、后退/前进按钮、书签菜单等浏览器引擎:在用户界面和渲染引擎之间架起桥梁渲染引擎:负责显示请求的内容(如Chrome的Blink、Firefox的Gecko)网络层:处理网络请求(如HTTP请求)JavaScript引擎:解释和执行JavaScript代码(如V8引擎)UI后端:绘制基本的窗口小部件(如组合
- 我是如何在一周内拿到4份offer的?
yoyo小小汐~
软件测试面试软件测试程序员测试工程师简历
前言我大概面试了6,7家公司吧,有大公司也有小公司,最后拿到4家offer,可能有的人看到这样的数据,会说我在吹牛*,我想说的是你做不到的事情不代表别人做不到。现在把我是如何在一周内拿到4份offer的经验和经历做个简单的介绍,分享一下自己的心得,希望对即将找工作的你有些帮助。面试准备简历简历是面试者的敲门砖,只有通过HR的初步筛选你才能有机会得到面试,所以简历还是一大关。说实话我也不确定我的简历
- 第二章、three.js开发入门与调试设置;
前端小砖er
javascript开发语言ecmascript
一、轨道控制器查看物体;1、基本概念轨道控制器(OrbitControls)可以使得相机围绕目标进行轨道运动;2、代码样例//七、创建轨道控制器(相机围绕着物体捕捉视角)constcontrols=newOrbitControls(camera,renderer.domElement,)functionrender(){renderer.render(scene,camera);//请求动画帧:渲
- SVN There are unfinished transactions detected
fz1989
EclipseSVNcommit遇到Thereareunfinishedtransactionsdetected错误在TeamSynchronizingView中右键项目->Local->Cleanup,清除历史记录后问题解决
- Python+Vue计算机毕业设计智慧养老院管理系统egn81(源码+程序+LW+部署)
心心毕设程序源码
pythonvue.js课程设计
该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程项目运行环境配置:Python3.7.7+Django+Mysql5.7+piplist+HBuilderX(Vscode也行)+Vue+Pychram社区版。项目技术:Django+Vue+Python+Mysql等等组成,B/S模式等等。环境需要1.运行环境:最好是安装Python3.7.7,我们在这个平台上运行的。其他版本理论上也
- 跟着感觉走 threejs 第一篇
引言在实际开发的过程中,你是否经常遇到这样一种情形。需要用到一个组件,这个组件你抑或者其他小伙伴之前已经实现了,你内心窃喜,又可以使出拿来主义大法了。打开一看,发现之前的组件代码其中包含了很多强耦合的代码逻辑,导致不能够完全为你所用,不香不臭,弃之可惜食之无味。这个时候,聪明的你,很快的想到了使出必杀技copy大法。但过来人的我相信,你内心深处是处于极度抗拒的,一方面又想赶快实现业务功能开发,另一
- ruby on rails_Ruby,Rails和冒名顶替综合症,作者Glenn Goodrich
culi3118
编程语言python人工智能java大数据
rubyonrailsInthisepisodeoftheVersioningShow,TimandDavidarejoinedbyGlennGoodrich,akaRuprict,adeveloperbydayandSitePoint’sRubyChanneleditorbynight.TheydiscussthebenefitsofRuby,buildingwebsiteswithRails,
- 六级作文/翻译--24.06(1)
WritingThereisagrowingawarenessoftheimportanceofdigitalliteracyandskillsintoday'sworldThereisagrowingawarenessoftheimportanceofdigitalliteracyandskillsintoday'sworld.Aswenavigatethroughthedigitalrevol
- 创建线程的常见方式
HansenPole825
java开发语言
一、继承Thread类继承Thread类重写run()方法。publicclassmyThreadextendsThread{@Overridepublicvoidrun(){System.out.println("线程启动了");}publicstaticvoidmain(String[]args){myThreadmyThread=newmyThread();myThread.start();
- 进程和线程的区别,如何实现线程通信?
EchoYa!
javalinux服务器
进程和线程是操作系统中的两个重要概念,它们都是用来实现并发执行的方式,但有一些关键的区别:1.进程(Process)是程序的一次执行过程,是操作系统进行资源分配和调度的基本单位。每个进程都有独立的内存空间,包括代码、数据、堆栈等,进程之间相互独立,需要通过进程间通信来实现数据共享。2.线程(Thread)是进程中的一个执行单元,一个进程可以包含多个线程,线程共享进程的内存空间和资源,每个线程有自己
- nt!MiFlushSectionInternal函数分析从nt!IoSynchronousPageWrite函数到Ntfs!NtfsFsdWrite函数
sitelist
nt4源代码分析MiFlushSectionNtfsFsdWrite
第一部分:while(TRUE){KeClearEvent(&IoEvent);Status=IoSynchronousPageWrite(FilePointer,Mdl,(PLARGE_INTEGER)&StartingOffset,&IoEvent,IoStatus);1:kd>pnt!MiFlushSectionInternal+0x6f6:80a72410e8c74bfbffcallnt!
- Python网安-ftp服务暴力破解(仅供学习)
Whoisshutiao
python网络安全开发语言
目录源码在这里需要导入的模块连接ftp,并设置密码本和线程核心代码设置线程源码在这里https://github.com/Wist-fully/Attack/tree/cracker需要导入的模块importftplibfromthreadingimportThreadimportqueue连接ftp,并设置密码本和线程host="192.168.6.6"user="student"port=21
- Node.js-fs模块
会飞的鱼先生
node.jsvim编辑器
文件写入异步写入文件(fs.writeFile())//语法:fs.writeFile(file,data[,options],callback)//参数:文件路径、数据、选项(可选)、回调函数(err)constfs=require('fs');fs.writeFile('file.txt','HelloNode.js',function(err){if(err)throwerr;console
- 探索高效缓存:CoroutinesCache 开源库深度解析
龙香令Beatrice
探索高效缓存:CoroutinesCache开源库深度解析CoroutinesCacheInmobiledevelopmentexistssolutionforcachingwithRxJavausage,butthereisnosolutionsforKotlinCoroutines.Theprojectistoprovidethisfunctionalitytomobilecommunity.
- 关于 java:7. 多线程与并发编程
shenyan~
java开发语言
一、Thread类作用:Thread类代表一个线程,用于创建和控制一个新的执行流(即“子线程”)。定义:java.lang.Thread类实现了Runnable接口。1.1使用方式方法一:继承Thread类步骤:自定义类继承Thread。重写run()方法。创建线程对象并调用start()方法。示例代码:classMyThreadextendsThread{@Overridepublicvoidr
- 七、Go语言快速入门之函数func
文章目录函数:one:GO语言函数介绍:two:函数的参数和返回值:star2:按值传递和按引用传递:star2:给返回值命名:star2:空白符:star2:改变外部变量:three:传递变长参数:four:`defer`和追踪:star2:`defer`使用:star2:`defer`实现代码追踪:five:递归函数:six:匿名函数(闭包):star2:将函数作为返回值:star2:使用闭包
- ABP VNext + MassTransit:构建分布式事务与异步消息协作
Kookoos
AbpvNext.net分布式ABPvNext.net后端c#MassTransit
ABPVNext+MassTransit:构建分布式事务与异步消息协作目录ABPVNext+MassTransit:构建分布式事务与异步消息协作1.背景与动机️2.环境与依赖3.在ABP模块中注册MassTransit3.1强类型配置绑定3.2模块配置4.完整消息契约5.Saga实体&状态机5.1`OrderState`withRowVersion5.2`OrderSagaDbContext`&`
- Three.js学习10:几何体(1)-平面几何体
stones4zd
three.js学习
-----------------------------华丽的分割线---------------------相关代码均已上传到gitee中:myThree:学习Three.js,努力加油~!Gitee静态演示地址:ThreeJS演示页面-----------------------------华丽的分割线---------------------一、几何体GeometryThree.js中物体
- Three.js开发必备:几何体BufferGeometry顶点详解
天生我材必有用_吴用
three.jsthreeJS
目录几何体顶点位置数据和点模型对象Points缓冲类型几何体BufferGeometry顶点模型第一步、创建一个空的几何体对象第二步、添加顶点数据第三步、3个为一组,表示一个顶点的xyz坐标第四步、设置几何体顶点属性与点材质第五步、导出点模型第六步、场景中引入添加点模型第七步、查看效果线模型Line渲染顶点数据第一步、设置线材质对象第二步、创建线模型对象第三步、场景中引入添加线模型第四步、查看效果
- React Error Boundary
Happy_Ariel
react.jsjavascript前端
ReactErrorBoundaryimport*asReactfrom'react';import{Component}from'react';import{createRoot}from'react-dom/client';functionrenderWithError(){thrownewError('error');}functionA(){return{renderWithError()
- 为啥枚举天生线程安全?
chi_666
面试安全
枚举天生线程安全的特性,主要源于其在Java语言中的设计机制和类加载机制。以下是具体原因分析:一、枚举的本质:静态final的实例枚举在Java中本质上是一个继承了java.lang.Enum的特殊类,每个枚举常量在编译时会被转换为该类的静态final实例。例如:publicenumThreadSafeEnum{INSTANCE;//其他属性和方法}编译后等价于:publicfinalclassT
- 关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题
何必如此
jsp超链接文件下载窗口
生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourc
- 【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析
bit1129
cluster
在分析源代码之前,首先对Standalone Cluster Mode的资源调度有一个基本的认识:
首先,运行一个Application需要Driver进程和一组Executor进程。在Standalone Cluster Mode下,Driver和Executor都是在Master的监护下给Worker发消息创建(Driver进程和Executor进程都需要分配内存和CPU,这就需要Maste
- linux上独立安装部署spark
daizj
linux安装spark1.4部署
下面讲一下linux上安装spark,以 Standalone Mode 安装
1)首先安装JDK
下载JDK:jdk-7u79-linux-x64.tar.gz ,版本是1.7以上都行,解压 tar -zxvf jdk-7u79-linux-x64.tar.gz
然后配置 ~/.bashrc&nb
- Java 字节码之解析一
周凡杨
java字节码javap
一: Java 字节代码的组织形式
类文件 {
OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组
}
&nbs
- java各种小工具代码
g21121
java
1.数组转换成List
import java.util.Arrays;
Arrays.asList(Object[] obj); 2.判断一个String型是否有值
import org.springframework.util.StringUtils;
if (StringUtils.hasText(str)) 3.判断一个List是否有值
import org.spring
- 加快FineReport报表设计的几个心得体会
老A不折腾
finereport
一、从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度。否则每次设计时模板均要从远程读取数据,速度相当慢!!
二、找一个富文本编辑软件(如NOTEPAD+)编辑SQL语句,这样会很好地检查语法。有时候带参数较多检查语法复杂时,结合FineReport中生成的日志,再找一个第三方数据库访问软件(如PL/SQL)进行数据检索,可以很快定位语法错误。
- mysql linux启动与停止
墙头上一根草
如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inin
- Spring中事务管理浅谈
aijuans
spring事务管理
Spring中事务管理浅谈
By Tony Jiang@2012-1-20 Spring中对事务的声明式管理
拿一个XML举例
[html]
view plain
copy
print
?
<?xml version="1.0" encoding="UTF-8"?>&nb
- php中隐形字符65279(utf-8的BOM头)问题
alxw4616
php中隐形字符65279(utf-8的BOM头)问题
今天遇到一个问题. php输出JSON 前端在解析时发生问题:parsererror.
调试:
1.仔细对比字符串发现字符串拼写正确.怀疑是 非打印字符的问题.
2.逐一将字符串还原为unicode编码. 发现在字符串头的位置出现了一个 65279的非打印字符.
 
- 调用对象是否需要传递对象(初学者一定要注意这个问题)
百合不是茶
对象的传递与调用技巧
类和对象的简单的复习,在做项目的过程中有时候不知道怎样来调用类创建的对象,简单的几个类可以看清楚,一般在项目中创建十几个类往往就不知道怎么来看
为了以后能够看清楚,现在来回顾一下类和对象的创建,对象的调用和传递(前面写过一篇)
类和对象的基础概念:
JAVA中万事万物都是类 类有字段(属性),方法,嵌套类和嵌套接
- JDK1.5 AtomicLong实例
bijian1013
javathreadjava多线程AtomicLong
JDK1.5 AtomicLong实例
类 AtomicLong
可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。
 
- 自定义的RPC的Java实现
bijian1013
javarpc
网上看到纯java实现的RPC,很不错。
RPC的全名Remote Process Call,即远程过程调用。使用RPC,可以像使用本地的程序一样使用远程服务器上的程序。下面是一个简单的RPC 调用实例,从中可以看到RPC如何
- 【RPC框架Hessian一】Hessian RPC Hello World
bit1129
Hello world
什么是Hessian
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary p
- 【Spark九十五】Spark Shell操作Spark SQL
bit1129
shell
在Spark Shell上,通过创建HiveContext可以直接进行Hive操作
1. 操作Hive中已存在的表
[hadoop@hadoop bin]$ ./spark-shell
Spark assembly has been built with Hive, including Datanucleus jars on classpath
Welcom
- F5 往header加入客户端的ip
ronin47
when HTTP_RESPONSE {if {[HTTP::is_redirect]}{ HTTP::header replace Location [string map {:port/ /} [HTTP::header value Location]]HTTP::header replace Lo
- java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/
写了个java版的
public class GreatestLeftRightDiff {
/**
* Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。
* 求所有数对之差的最大值。例如在数组
- mongoDB 索引
开窍的石头
mongoDB索引
在这一节中我们讲讲在mongo中如何创建索引
得到当前查询的索引信息
db.user.find(_id:12).explain();
cursor: basicCoursor 指的是没有索引
&
- [硬件和系统]迎峰度夏
comsci
系统
从这几天的气温来看,今年夏天的高温天气可能会维持在一个比较长的时间内
所以,从现在开始准备渡过炎热的夏天。。。。
每间房屋要有一个落地电风扇,一个空调(空调的功率和房间的面积有密切的关系)
坐的,躺的地方要有凉垫,床上要有凉席
电脑的机箱
- 基于ThinkPHP开发的公司官网
cuiyadll
行业系统
后端基于ThinkPHP,前端基于jQuery和BootstrapCo.MZ 企业系统
轻量级企业网站管理系统
运行环境:PHP5.3+, MySQL5.0
系统预览
系统下载:http://www.tecmz.com
预览地址:http://co.tecmz.com
各种设备自适应
响应式的网站设计能够对用户产生友好度,并且对于
- Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)
darrenzhu
jms事务承认MQacknowledge
JMS Message Delivery Reliability and Acknowledgement Patterns
http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/
Transaction and redelivery in
- Centos添加硬盘完全教程
dcj3sjt126com
linuxcentoshardware
Linux的硬盘识别:
sda 表示第1块SCSI硬盘
hda 表示第1块IDE硬盘
scd0 表示第1个USB光驱
一般使用“fdisk -l”命
- yii2 restful web服务路由
dcj3sjt126com
PHPyii2
路由
随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法。
在实践中,你通常要用美观的URL并采取有优势的HTTP动词。 例如,请求POST /users意味着访问user/create动作。 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示
- MongoDB查询(4)——游标和分页[八]
eksliang
mongodbMongoDB游标MongoDB深分页
转载请出自出处:http://eksliang.iteye.com/blog/2177567 一、游标
数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效控制,从shell中定义一个游标非常简单,就是将查询结果分配给一个变量(用var声明的变量就是局部变量),便创建了一个游标,如下所示:
> var
- Activity的四种启动模式和onNewIntent()
gundumw100
android
Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
<acti
- 攻城狮送女友的CSS3生日蛋糕
ini
htmlWebhtml5csscss3
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>攻城狮送女友的CSS3生日蛋糕-柯乐义<
- 读源码学Servlet(1)GenericServlet 源码分析
jzinfo
tomcatWebservlet网络应用网络协议
Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口。在Servlet接口中定义了5个方法,其中有3个方法是由Servlet 容器在Servlet的生命周期的不同阶段来调用的特定方法。
先看javax.servlet.servlet接口源码:
package
- JAVA进阶:VO(DTO)与PO(DAO)之间的转换
snoopy7713
javaVOHibernatepo
PO即 Persistence Object VO即 Value Object
VO和PO的主要区别在于: VO是独立的Java Object。 PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。
实际上,这个VO被用作Data Transfer
- mongodb group by date 聚合查询日期 统计每天数据(信息量)
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
/* 1 */
{
"_id" : ObjectId("557ac1e2153c43c320393d9d"),
"msgType" : "text",
"sendTime" : ISODate("2015-06-12T11:26:26.000Z")
- java之18天 常用的类(一)
Luob.
MathDateSystemRuntimeRundom
System类
import java.util.Properties;
/**
* System:
* out:标准输出,默认是控制台
* in:标准输入,默认是键盘
*
* 描述系统的一些信息
* 获取系统的属性信息:Properties getProperties();
*
*
*
*/
public class Sy
- maven
wuai
maven
1、安装maven:解压缩、添加M2_HOME、添加环境变量path
2、创建maven_home文件夹,创建项目mvn_ch01,在其下面建立src、pom.xml,在src下面简历main、test、main下面建立java文件夹
3、编写类,在java文件夹下面依照类的包逐层创建文件夹,将此类放入最后一级文件夹
4、进入mvn_ch01
4.1、mvn compile ,执行后会在