大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
试试这个代码。
创新互联公司专注于企业营销型网站建设、网站重做改版、无极网站定制设计、自适应品牌网站建设、H5高端网站建设、商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为无极等各大城市提供网站开发制作服务。
import java.io.File;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FilesAndDirectories {
public FilesAndDirectories() {
}
public void runTest() {
// list files and folders
String dir = "D:\\temp";
File file = new File(dir);
displayInfo(0, file);
}
private void displayInfo(int depth, File file) {
// Name, Date, Size, Attr
boolean executable = file.canExecute();
boolean readable = file.canRead();
boolean writable = file.canWrite();
boolean hidden = file.isHidden();
boolean directory = file.isDirectory();
long lastModified = file.lastModified();
long length = file.length();
String name = file.getName();
// create ASCII file structure
StringBuilder buf = new StringBuilder();
for (int i = 0; i depth; ++i) {
buf.append("|");
}
if (directory) {
buf.append("+ ");
}
if (name.isEmpty()) {
buf.append(".");
} else {
buf.append(name);
}
// add modification date
buf.append("\t\t");
Date date = new Date(lastModified);
buf.append(new SimpleDateFormat().format(date));
buf.append("\t\t");
// add file size in kilobytes
long kb = length / 1024;
DecimalFormat format = new DecimalFormat();
format.setGroupingUsed(true);
buf.append(format.format(kb));
buf.append(" KB");
// add read, write, execute attribute flags
buf.append("\t\t");
if (hidden)
buf.append(".");
if (readable)
buf.append("R");
if (writable)
buf.append("W");
if (executable)
buf.append("X");
// print everything to the command line
System.out.println(buf.toString());
File[] children = file.listFiles();
if (children != null) {
for (File child : children) {
displayInfo(depth + 1, child);
}
}
}
public static void main(String[] args) {
new FilesAndDirectories().runTest();
}
}
多实例的redis 主要通过 redis shard功能实现
可以看一下Java Redis线程池ShardedJedisPool 使用方法
主要的原理是根据key做hash散列算法存储查询到不同的实例分片上
javaweb的四层/五层逻辑结构。
首先要明白为什么要分层?
分层的目的是为了简化工作流程,避免重复代码和不必要的冗余,提高开发速度和效率。
由上到下分为:
1.UI层(对用户进行显示)
2.持久化层(用来持久化数据库)
3.业务层(有丰富的业务逻辑,并进行处理,就是把实际数据库的映射到内存中,就好比把仓库的粮食放到锅里去煮还是拿去分给大家,这就是两种业务逻辑)
4.表现层(在我看来就是服务层,用来管理容器级别的服务,例如事务,安全,数据访问逻辑等等)
这是这四层结构,还有三层结构表示的:
表示层
业务逻辑
持久化
这个分层主要是看遵循哪一种标准以及分层的用途了。
就好比计算机网络中的网络结构分层,有五层的通用结构,四层的TCP/IP协议,七层的OSI协议。
我觉得不必深究,当你真实的去运用这些知识后,再去质疑也不迟。
建议 楼主了解下MVC
一般的项目大概分为4层
dao 就是数据操作层
一般放对数据库进行操作的方法,比如查找某条数据
biz 业务处理层
对用户的数据进行业务逻辑处理比如注册时,判断用户注册的用户名是否已存在,如果已存在返回用户错误信息,否则将用户注册的信息写入数据库
servlet 逻辑判断层
对页面的请求响应数据进行逻辑处理,如封装等
jsp 表现层
将程序处理的最终结果显示给用户
他们之间的联系就是,比如注册:
用户在jsp页面进行表单填写,点击提交到一个servlet,servlet将注册信息封装成javaBean交给biz层处理,这时候biz层对javaBean解封将用户注册的用户名提取出来调用dao层的checkUserName()进行判断该用户名是否已存在.如果存在返回一个信息给servlet告知用户该用户名已存在,请重新注册.如果该用户名不存在,说明可注册,biz再调用dao层的savaUser()方法将用户的注册信息写入数据库,返回servlet一个注册成功的信息,最后由servlet将这些处理的最终结果返回给jsp页面给用户.
建议楼主去多看看别人的项目,或者自己写些小项目这样在写程序的过程中能更贴切的理解这些过程存在的意义
总之,分层思想的存在是更方便的管理和维护