首页 > 编程语言 > 详细

JAVA 学习中的基础问答

时间:2020-08-06 13:37:47      阅读:78      评论:0      收藏:0      [点我收藏+]

1. 为什么要配置环境变量?

答:为了让javac命令(编译命令)和Java命令(运行命令)能在任何文件夹都能运行。

2. JAVA多线程的理解

进程与线程

进程是程序的一次动态执行过程,它需要经历从代码加载,代码执行到执行完毕的一个完整的过程,这个过程也是进程本身从产生,发展到最终消亡的过程。多进程操作系统能同时达运行多个进程(程序),由于 CPU 具备分时机制,所以每个进程都能循环获得自己的CPU 时间片。由于 CPU 执行速度非常快,使得所有程序好像是在同时运行一样。

线程是进程的基础之上进行进一步的划分。所谓多线程是指一个进程在执行过程中可以产生多个更小的程序单元,这些更小的单元称为线程,这些线程可以同时存在,同时运行,一个进程可能包含多个同时执行的线程。

3. File类的构造函数及其方法

File是专门用来管理磁盘文件与目录的,它不负责数据的输入输出。Java.io.File是Java.lang.Object的子类,是文件和目录路径名的抽象表示简单来说就是File可以代表磁盘下的一个文件,也可以代码磁盘目录下的一个文件集。我们可以使用File拿到这个文件或者文件集的引用,来对这个文件或者文件集进行操作。

3.1 IO流(Input Output)

IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中

3.2 File类的构造函数(方法)

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();//创建文件(空文件)    [方法]
    }
}

4. java中带参数的try(){}语法含义是什么?

带资源的try语句(try-with-resource)的最简形式为:

try(Resource res = xxx)//可指定多个资源
{
     work with res
}        

try块退出时,会自动调用res.close()方法,关闭资源。

5. Java 中json和gson

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);

6.决Java工程URL路径中含有中文的情况

这其实是编码转换的问题。当我们使用ClassLoader的getResource方法获取路径时,获取到的路径被URLEncoder.encode(path,"utf-8")编码了,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,所以我们可以调用URLDecoder.decode()方法进行解码,以便得到原始的中文及空格路径。

Java代码 :
String packagePath = url.getPath().replaceAll("%20","");//解决路径中含有空格的情况
packagePath = java.net.URLDecoder.decode(packagePath,"utf-8"); //解决路径包含中文的情况

7. java做开发项目时的包的作用(dao,model,service,impl,util,pojo)

app包:

main函数入口

util包:

通常都是工具类,如字符串处理、日期处理等,(建立数据库之间的连接)

model包

存放我们的实体类,与数据库中的属性值基本保持一致

dao包

数据访问层,主要针对于数据表的操作,可以理解为一张数据表,就有一个Dao与之对应,与数据库的操作,增删改查等方法

service包

供外部调用,等于对dao,model等进百行了包装

impl包

定义接口

8. java-包名规则

个人:

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

JAVA 学习中的基础问答

原文:https://www.cnblogs.com/alidata/p/13445713.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!