所以说java语言的进阶分为两层:java语言、jvm
java的命名规则ascll码不能有空格 |
Public class ClassName{
public static void main(String[] args){
System.out.println("Hello World");//1
}
}
包路径采用“.”分隔
包路径不是绝对路径的文件路径,它只是相对java工程目录的路径
一个文件只有一个package语句,并在文件的第一行 |
int code = (int) ((Math.random()+1) * 100000);
public static void random(int length){//void 无返回值
int code = (int) ((Math.random()+1) * length);
System.out.println(code);
}//
//还可以错参数
public class Custom {
public static void main(String[] args){
System.out.println("测试");
// 这里执行一下 newLine 这个自定义方法的调用
newLine();
System.out.println("结束");
}
public static void newLine(){
System.out.println("");
}
}
// 验证码方法void
public static void code(int len)
// 随机数方法double
public static double random()
public static int code(int len){
// 得到随机数结果
double val = Math.random();
// 随机数结果*9+1 然后再乘以位数得到验证码
int result = (int)((val*9+1)*len);
return result;
}
字符串常用
包(package)的导入 import 包名+类名
import java.time.LocalDate;
get 请求
安装依赖库
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.1.0</version>
</dependency>
OkHttpClient okHttpClient = new OkHttpClient();
代码。Call call = okHttpClient.newCall(request);
不要忘了在pom.xml里添加依赖,以及import语句引入使用类
应用程序接口,api一般是指一些预先定义的函数,目的是可以为开发人员快速访问某一程序,无需访问的源码,或内部工作机制的细节
Okhttp3的一些方法
post():放在表单中提交
Builder builder = new FormBody.Builder();
// 设置数据,第一个参数是数据名,第二个参数是数据值
builder.add("", "");
FormBody formBody = builder.build();
Request request = new Request.Builder().url(url).post(formBody).build();
get():调用api
JSON方式提交数据步骤
使用一条语句执行调用请求,并取得返回结果字符串
call.execute().body().string()
获取响应状态码
call.execute().code()
请求图片、excel等非文本文件时,不能使用 response.body().string()
response.body().bytes();
JSON 很多api返回的文件内容是JSON格式的。JSON是一段文本,是java的字符串,是难以进行解析具体内容的。必须转换成Java的对象
JSON.parseObject()
HTTP header是HTTP协议的一项重要内容
Request request = new Request.Builder()
.url(url)
.addHeader("Referer", "https://ham.youkeda.com/course/j14/0")
.build();
Host表示当前请求的域名
Request request = new Request.Builder()
.url(url)
.addHeader("Host", "www.douban.com")
.build();
写入文本文件
import java.io.File;
import java.io.FileWriter;
// 文件对象
File file = new File("foo.txt");
// 写入内容
FileWriter fileWritter = new FileWriter(file.getName());
fileWritter.write(content);
// 关闭
fileWritter.close();
写入二进制文件
import java.io.File;
import java.io.FileOutputStream;
// 文件对象
File file = new File("china-city-list.xlsx");
// 写文件
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
// 必须刷新并关闭
fos.flush();
fos.close();
下载图片
与上面一样
解析excel
加依赖库
<dependency>
<groupId>com.alibabagroupId>
<artifactId>easyexcelartifactId>
<version>3.1.1version>
dependency>
import com.alibaba.excel.EasyExcel;
import java.util.Map;
import java.util.List;
// 读取第一个sheet
List<Map<Integer, String>> sheetDatas = EasyExcel.read("xzq_201907.xlsx").sheet(0).doReadSync();
// List 中每个元素表示一行
for (Map<Integer, String> rowData : sheetDatas) {
// Map 中用序号指代每一列
for (Integer index : rowData.keySet()) {
// 列值
String columnValue = rowData.get(index);
}
}
print不换行 println 换行
emmmm 怎么说呢,
HTML标签
作用:告知浏览器该页面文件的文档类型,该声明必须在HTML文档的第一行,对大小写不敏感, 没有结束标签
标签限定文档的开始和结束,头部 主体 lang属性(语言属性):en表英文
HandlerInterceptor
接口。可以在三个点进行拦截:
preHandle()
方法中处理。postHandle()
方法中处理。afterCompletion
方法中处理。import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class InterceptorDemo implements HandlerInterceptor {
// Controller方法执行之前
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 只有返回true才会继续向下执行,返回false取消当前请求
return true;
}
//Controller方法执行之后
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
// 整个请求完成后(包括Thymeleaf渲染完毕)
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
preHandle()` 方法的参数中有 `HttpServletRequest` 和 `HttpServletResponse`,可以像 `control` 中一样使用 `Session
新增数据 插入mongoTemplate.insert()
查询数据 findById() mongoTemplate.findById(songId, Song.class)
修改数据
// 修改 id=1 的数据
Query query = new Query(Criteria.where("id").is("1"));
// 把歌名修改为 “new name”
Update updateData = new Update();
updateData.set("name", "new name");
// 执行修改,修改返回结果的是一个对象
UpdateResult result = mongoTemplate.updateFirst(query, updateData, Song.class);
// 修改的记录数大于 0 ,表示修改成功
System.out.println("修改的数据记录数量:" + result.getModifiedCount());
删除数据
Song song = new Song();
song.setId(songId);
// 执行删除
DeleteResult result = mongoTemplate.remove(song);
// 删除的记录数大于 0 ,表示删除成功
System.out.println("删除的数据记录数量:" + result.getDeletedCount());
java在生成字节码之外,还生成了JVM(java virtual machine,java 虚拟机),通过JVM支持了字节码的解释运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iKurYleH-1673275878158)(D:\1ar\youkedai\图片合集\图片1.png)]
所以说java语言的进阶分为两层:java语言、jvm
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fshD6EKs-1673275878159)(D:\1ar\youkedai\图片合集\图片2.png)]
java的命名规则ascll码不能有空格 |
Public class ClassName{
public static void main(String[] args){
System.out.println("Hello World");//1
}
}
包路径采用“.”分隔
包路径不是绝对路径的文件路径,它只是相对java工程目录的路径
一个文件只有一个package语句,并在文件的第一行 |
int code = (int) ((Math.random()+1) * 100000);
public static void random(int length){//void 无返回值
int code = (int) ((Math.random()+1) * length);
System.out.println(code);
}//
//还可以错参数
public class Custom {
public static void main(String[] args){
System.out.println("测试");
// 这里执行一下 newLine 这个自定义方法的调用
newLine();
System.out.println("结束");
}
public static void newLine(){
System.out.println("");
}
}
// 验证码方法void
public static void code(int len)
// 随机数方法double
public static double random()
public static int code(int len){
// 得到随机数结果
double val = Math.random();
// 随机数结果*9+1 然后再乘以位数得到验证码
int result = (int)((val*9+1)*len);
return result;
}
字符串常用
包(package)的导入 import 包名+类名
import java.time.LocalDate;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oH7C3IfT-1673275878160)(D:\1ar\youkedai\图片合集\图片4.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BoigzT6j-1673275878160)(D:\1ar\youkedai\图片合集\图片5.png)]
get 请求
安装依赖库
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.1.0</version>
</dependency>
OkHttpClient okHttpClient = new OkHttpClient();
代码。Call call = okHttpClient.newCall(request);
不要忘了在pom.xml里添加依赖,以及import语句引入使用类
应用程序接口,api一般是指一些预先定义的函数,目的是可以为开发人员快速访问某一程序,无需访问的源码,或内部工作机制的细节
Okhttp3的一些方法
post():放在表单中提交
Builder builder = new FormBody.Builder();
// 设置数据,第一个参数是数据名,第二个参数是数据值
builder.add("", "");
FormBody formBody = builder.build();
Request request = new Request.Builder().url(url).post(formBody).build();
get():调用api
JSON方式提交数据步骤
使用一条语句执行调用请求,并取得返回结果字符串
call.execute().body().string()
获取响应状态码
call.execute().code()
请求图片、excel等非文本文件时,不能使用 response.body().string()
response.body().bytes();
JSON 很多api返回的文件内容是JSON格式的。JSON是一段文本,是java的字符串,是难以进行解析具体内容的。必须转换成Java的对象
JSON.parseObject()
HTTP header是HTTP协议的一项重要内容
Request request = new Request.Builder()
.url(url)
.addHeader("Referer", "https://ham.youkeda.com/course/j14/0")
.build();
Host表示当前请求的域名
Request request = new Request.Builder()
.url(url)
.addHeader("Host", "www.douban.com")
.build();
写入文本文件
import java.io.File;
import java.io.FileWriter;
// 文件对象
File file = new File("foo.txt");
// 写入内容
FileWriter fileWritter = new FileWriter(file.getName());
fileWritter.write(content);
// 关闭
fileWritter.close();
写入二进制文件
import java.io.File;
import java.io.FileOutputStream;
// 文件对象
File file = new File("china-city-list.xlsx");
// 写文件
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
// 必须刷新并关闭
fos.flush();
fos.close();
下载图片
与上面一样
解析excel
加依赖库
<dependency>
<groupId>com.alibabagroupId>
<artifactId>easyexcelartifactId>
<version>3.1.1version>
dependency>
import com.alibaba.excel.EasyExcel;
import java.util.Map;
import java.util.List;
// 读取第一个sheet
List<Map<Integer, String>> sheetDatas = EasyExcel.read("xzq_201907.xlsx").sheet(0).doReadSync();
// List 中每个元素表示一行
for (Map<Integer, String> rowData : sheetDatas) {
// Map 中用序号指代每一列
for (Integer index : rowData.keySet()) {
// 列值
String columnValue = rowData.get(index);
}
}
print不换行 println 换行
emmmm 怎么说呢,
HTML标签
嵌套
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SRqlKYpm-1673275878161)(D:\1ar\youkedai\图片合集\图片6.png)]
作用:告知浏览器该页面文件的文档类型,该声明必须在HTML文档的第一行,对大小写不敏感, 没有结束标签
标签限定文档的开始和结束,头部 主体 lang属性(语言属性):en表英文
HandlerInterceptor
接口。可以在三个点进行拦截:
preHandle()
方法中处理。postHandle()
方法中处理。afterCompletion
方法中处理。import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class InterceptorDemo implements HandlerInterceptor {
// Controller方法执行之前
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 只有返回true才会继续向下执行,返回false取消当前请求
return true;
}
//Controller方法执行之后
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
// 整个请求完成后(包括Thymeleaf渲染完毕)
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
preHandle()` 方法的参数中有 `HttpServletRequest` 和 `HttpServletResponse`,可以像 `control` 中一样使用 `Session
新增数据 插入mongoTemplate.insert()
查询数据 findById() mongoTemplate.findById(songId, Song.class)
修改数据
// 修改 id=1 的数据
Query query = new Query(Criteria.where("id").is("1"));
// 把歌名修改为 “new name”
Update updateData = new Update();
updateData.set("name", "new name");
// 执行修改,修改返回结果的是一个对象
UpdateResult result = mongoTemplate.updateFirst(query, updateData, Song.class);
// 修改的记录数大于 0 ,表示修改成功
System.out.println("修改的数据记录数量:" + result.getModifiedCount());
删除数据
Song song = new Song();
song.setId(songId);
// 执行删除
DeleteResult result = mongoTemplate.remove(song);
// 删除的记录数大于 0 ,表示删除成功
System.out.println("删除的数据记录数量:" + result.getDeletedCount());