答:为了让javac命令(编译命令)和Java命令(运行命令)能在任何文件夹都能运行。
进程与线程
进程是程序的一次动态执行过程,它需要经历从代码加载,代码执行到执行完毕的一个完整的过程,这个过程也是进程本身从产生,发展到最终消亡的过程。多进程操作系统能同时达运行多个进程(程序),由于 CPU 具备分时机制,所以每个进程都能循环获得自己的CPU 时间片。由于 CPU 执行速度非常快,使得所有程序好像是在同时运行一样。
线程是进程的基础之上进行进一步的划分。所谓多线程是指一个进程在执行过程中可以产生多个更小的程序单元,这些更小的单元称为线程,这些线程可以同时存在,同时运行,一个进程可能包含多个同时执行的线程。
File是专门用来管理磁盘文件与目录的,它不负责数据的输入输出。Java.io.File是Java.lang.Object的子类,是文件和目录路径名的抽象表示,简单来说就是File可以代表磁盘下的一个文件,也可以代码磁盘目录下的一个文件集。我们可以使用File拿到这个文件或者文件集的引用,来对这个文件或者文件集进行操作。
IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中
File(String pathname):指定文件或者文件夹的路径来创建一个File文件;
File(File parent, String child):根据parent抽象路径和child路径名字符串,创建一个新的File实例;
package com.dhb.file;
import java.io.File;
import java.io.IOException;
public class Demo1 {
public static void main(String[] args) throws IOException {
File file = new File("F:/a.txt");//指定路径 [构造函数]
file.createNewFile();//创建文件(空文件) [方法]
File files = new File("F:\\","b.txt");//第一个参数是路径,第二个参数是要创建文件的文件名 [构造函数]
files.createNewFile();//创建文件(空文件) [方法]
}
}
带资源的try语句(try-with-resource)的最简形式为:
try(Resource res = xxx)//可指定多个资源
{
work with res
}
try块退出时,会自动调用res.close()方法,关闭资源。
JSON是javascript对象的一种形态,是一种轻量级的数据交换格式。一般用来在Java EE后台服务和Android或者IoS、H5之间进行通信的一种数据传递的格式。
而Gson是谷歌推出的一个用于生成和解析JSON数据格式的工具;
1.Gson的基本用法
Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化;同时每个方法都提供了重载方法
在使用gson之前需要先导入依赖包,在这里我使用的是2.8.0版本的gson jar包.
(
一方包:当前?工程中的各模块的相互依赖的包
二方包:公司内部的依赖库,一般指公司内部的其他项目发布的jar包
三方包:公司之外的开源库,比如apache、alibaba、google等发布的包
)
(
常见的JSON库
Gson Google公司开源 地址:https://github.com/google/gson
FastJson(项目选用) 阿?里里巴巴开源 地址:https://github.com/alibaba/fastjson
还有 Jackson、Json-lib等很多
)
GSON使用代码
//json字符串串转成对象
Gson gson=new Gson();
Map<String,Object> map = gson.fromJson(str,Map.class);
这其实是编码转换的问题。当我们使用ClassLoader的getResource方法获取路径时,获取到的路径被URLEncoder.encode(path,"utf-8")编码了,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,所以我们可以调用URLDecoder.decode()方法进行解码,以便得到原始的中文及空格路径。
Java代码 :
String packagePath = url.getPath().replaceAll("%20","");//解决路径中含有空格的情况
packagePath = java.net.URLDecoder.decode(packagePath,"utf-8"); //解决路径包含中文的情况
app包:
main函数入口
util包:
通常都是工具类,如字符串处理、日期处理等,(建立数据库之间的连接)
model包
存放我们的实体类,与数据库中的属性值基本保持一致
dao包
数据访问层,主要针对于数据表的操作,可以理解为一张数据表,就有一个Dao与之对应,与数据库的操作,增删改查等方法
service包
供外部调用,等于对dao,model等进百行了包装
impl包
定义接口
indi:多人完成,版权属于发起者
1 | 包名为indi.发起者名.项目名.模块名*.*.\*
pers :独自完成,公开,版权主要属于个人。
1 | 包名为pers.个人名.项目名.模块名*.*.*
priv : 独自完成,非公开,版权属于个人。
1 | 包名为priv.个人名.项目名.模块名*.*.*
team:团队项目指由团队发起,并由该团队开发的项目,版权属于该团队所有。
1 | 包名为team.团队名.项目名.模块名*.*.*
com:由公司发起,版权由项目发起的公司所有。
1 | 包名为com.公司名.项目名.模块名*.*.*
A、以功能模块来分层定义
com.xxx.user.action com.xxx.menu.action
com.xxx.user.service com.xxx.menu.service
原文:https://www.cnblogs.com/alidata/p/13445713.html