java基础复习

这里写自定义目录标题

    • java程序的架构
        • 变量
        • Java网络编程
        • API
        • request response对象
        • headers
        • 在console中下载文件、图片
        • cookie 和 session
    • 数据结构与算法入门
    • web前端基础
        • HTML元素的结构
        • 引入方式
    • javascript
    • Spring Web
        • maven
          • java 注释(Annotation)
        • spring bean
        • Spring Resource
        • Spring Boot
        • Spring Session
        • Spring Request 拦截器(HandlerInterceptor)
        • Spring Data CRUD,类似于数据库
    • java程序的架构
        • 变量
        • Java网络编程
        • API
        • request response对象
        • headers
        • 在console中下载文件、图片
        • cookie 和 session
    • 数据结构与算法入门
    • web前端基础
        • HTML元素的结构
        • 引入方式
    • javascript
    • Spring Web
        • maven
          • java 注释(Annotation)
        • spring bean
        • Spring Resource
        • Spring Boot
        • Spring Session
        • Spring Request 拦截器(HandlerInterceptor)
        • Spring Data CRUD,类似于数据库
    • 前端的

java程序的架构

  1. java在生成字节码之外,还生成了JVM(java virtual machine,java 虚拟机),通过JVM支持了字节码的解释运行

    在这里插入图片描述

所以说java语言的进阶分为两层:java语言、jvm

java基础复习_第1张图片

java的命名规则ascll码不能有空格
Public class ClassName{
    public static void main(String[] args){
        System.out.println("Hello World");//1
    }
}
  • public class :固定格式
  • ClassName: 类的名称
  • main:方法最重要,java程序从main开始执行
  • 1 语句

  1. 包路径采用“.”分隔

  2. 包路径不是绝对路径的文件路径,它只是相对java工程目录的路径

  3. 一个文件只有一个package语句,并在文件的第一行

变量

  • 变量是解决内容复用的
  • 变量是名称的
  • 声明变量(类似于String a)
  • 赋值 (a=“阿娆”)或者(String a = “阿娆”)
  • 数据类型 主要是 字符串 数字 布尔等 运算符±*/等
  • Math.random 随机数(浮点)几位数通过*100000之后再 1. %得出整数的随机数 2.强制int转换
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("");
  }
}
  • 逻辑语句
    • if
    • if else if else
    • if {if}
    • return
    • 递归
    • for
  • void 无返回值 int /bool…有返回值
// 验证码方法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;
  }
  • 字符串常用

    • 拼接 substring
    • 查找 indexOf
    • 开始/结束判断 startsWith/endsWith
    • 替换 replaceAll’
    • 分割 split
    • 大小写转换 toUpperCase/toLowerCase
    • 比较 equals
    • 数字和字符串转换 integer parseint
    • Sring.valueOf()
  • 包(package)的导入 import 包名+类名

    • import java.time.LocalDate;
      

Java网络编程

  • 协议
    • http
    • https

java基础复习_第2张图片

    • URL 统一资源定位符

java基础复习_第3张图片

    • 协议类型于域名之间://分割
    • 路径(path)以/开头,中间每层的分隔符/
    • 路径(path)相当于一层层的文件夹,但是要与windows的文件夹分隔符\区分
    • 参数
      • 路径与参数之间用?分割,
      • 多个参数之间用&分割
      • 参数用“参数名=参数值(key=value)”的表示方法
  • get 请求

    • 安装依赖库

      <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
      <dependency>
       <groupId>com.squareup.okhttp3</groupId>
       <artifactId>okhttp</artifactId>
       <version>4.1.0</version>
      </dependency>
      
    1. 实例化OkkHttpClient. 使用OkHttpClient okHttpClient = new OkHttpClient(); 代码。
    2. 执行调用。
      1. 在执行调用之前,需要实例化一个 Request对象,作用是定义请求的各种参数 Request request = new Request.Builder().url(url).build();
      2. 构建调用对象 Call call = okHttpClient.newCall(request);
      3. 最后执行调用,如果调用失败可能抛异常,所以必须抓取异常 call.execute()执行调用
    3. call.execute()返回的其实是一个执行的结果对象,调用对象的方法即可获取返回的字符串内容:call.execute().body().string();

不要忘了在pom.xml里添加依赖,以及import语句引入使用类

API

应用程序接口,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方式提交数据步骤

      • 将数据转换成JSON格式的字符串,调用
      • 创建RequestBody实例,注意需要指定提交的类型是application/json;chaarset=utf-8(api规定的编码格式)
      • 构建request实例对象时,调用.post(requestBody)表示使用JSON的方式提交数据

request response对象

使用一条语句执行调用请求,并取得返回结果字符串

call.execute().body().string()

获取响应状态码

call.execute().code()

请求图片、excel等非文本文件时,不能使用 response.body().string()

response.body().bytes();

JSON 很多api返回的文件内容是JSON格式的。JSON是一段文本,是java的字符串,是难以进行解析具体内容的。必须转换成Java的对象

JSON.parseObject()

headers

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

在console中下载文件、图片

  • 写入文本文件

    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 换行

cookie 和 session

数据结构与算法入门

emmmm 怎么说呢,

web前端基础

HTML元素的结构

HTML标签

  1. 由尖括号包围关键词
  2. 多成对出现
  3. 等是单独呈现的
  • 嵌套

java基础复习_第4张图片

  1. 作用:告知浏览器该页面文件的文档类型,该声明必须在HTML文档的第一行,对大小写不敏感, 没有结束标签

  2. ..... 告知浏览器其自身是一个html文档,与

标签限定文档的开始和结束,头部 主体 lang属性(语言属性):en表英文

  1. 属性标签
  2. 文档的头部
  3. 文档主体
  4. 注释 <dependency> <groupId>org.springframework.sessiongroupId> <artifactId>spring-session-coreartifactId> dependency>
  5. Spring Request 拦截器(HandlerInterceptor)

    1. 创建拦截器HandlerInterceptor 接口。可以在三个点进行拦截:
      1. Controller方法执行之前。这是最常用的拦截点。例如是否登录的验证就要在 preHandle() 方法中处理。
      2. Controller方法执行之后。例如记录日志、统计方法执行时间等,就要在 postHandle() 方法中处理。
      3. 整个请求完成后。不常用的拦截点。例如统计整个请求的执行时间的时候用,在 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
    
    1. 实现 WebMvcConfigurer

    Spring Data CRUD,类似于数据库

    1. 新增数据 插入mongoTemplate.insert()

    2. 查询数据 findById() mongoTemplate.findById(songId, Song.class)

    3. 修改数据

      // 修改 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());
      
    4. 删除数据

    Song song = new Song();
    song.setId(songId);
    
    // 执行删除
    DeleteResult result = mongoTemplate.remove(song);
    // 删除的记录数大于 0 ,表示删除成功
    System.out.println("删除的数据记录数量:" + result.getDeletedCount());
    

    java程序的架构

    1. 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
        }
    }
    
    • public class :固定格式
    • ClassName: 类的名称
    • main:方法最重要,java程序从main开始执行
    • 1 语句

    1. 包路径采用“.”分隔

    2. 包路径不是绝对路径的文件路径,它只是相对java工程目录的路径

    3. 一个文件只有一个package语句,并在文件的第一行

    变量

    • 变量是解决内容复用的
    • 变量是名称的
    • 声明变量(类似于String a)
    • 赋值 (a=“阿娆”)或者(String a = “阿娆”)
    • 数据类型 主要是 字符串 数字 布尔等 运算符±*/等
    • Math.random 随机数(浮点)几位数通过*100000之后再 1. %得出整数的随机数 2.强制int转换
    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("");
      }
    }
    
    • 逻辑语句
      • if
      • if else if else
      • if {if}
      • return
      • 递归
      • for
    • void 无返回值 int /bool…有返回值
    // 验证码方法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;
      }
    
    • 字符串常用

      • 拼接 substring
      • 查找 indexOf
      • 开始/结束判断 startsWith/endsWith
      • 替换 replaceAll’
      • 分割 split
      • 大小写转换 toUpperCase/toLowerCase
      • 比较 equals
      • 数字和字符串转换 integer parseint
      • Sring.valueOf()
    • 包(package)的导入 import 包名+类名

      • import java.time.LocalDate;
        

    Java网络编程

    • 协议
      • http
      • https

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oH7C3IfT-1673275878160)(D:\1ar\youkedai\图片合集\图片4.png)]

      • URL 统一资源定位符

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BoigzT6j-1673275878160)(D:\1ar\youkedai\图片合集\图片5.png)]

      • 协议类型于域名之间://分割
      • 路径(path)以/开头,中间每层的分隔符/
      • 路径(path)相当于一层层的文件夹,但是要与windows的文件夹分隔符\区分
      • 参数
        • 路径与参数之间用?分割,
        • 多个参数之间用&分割
        • 参数用“参数名=参数值(key=value)”的表示方法
    • get 请求

      • 安装依赖库

        <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
        <dependency>
         <groupId>com.squareup.okhttp3</groupId>
         <artifactId>okhttp</artifactId>
         <version>4.1.0</version>
        </dependency>
        
      1. 实例化OkkHttpClient. 使用OkHttpClient okHttpClient = new OkHttpClient(); 代码。
      2. 执行调用。
        1. 在执行调用之前,需要实例化一个 Request对象,作用是定义请求的各种参数 Request request = new Request.Builder().url(url).build();
        2. 构建调用对象 Call call = okHttpClient.newCall(request);
        3. 最后执行调用,如果调用失败可能抛异常,所以必须抓取异常 call.execute()执行调用
      3. call.execute()返回的其实是一个执行的结果对象,调用对象的方法即可获取返回的字符串内容:call.execute().body().string();

    不要忘了在pom.xml里添加依赖,以及import语句引入使用类

    API

    应用程序接口,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方式提交数据步骤

        • 将数据转换成JSON格式的字符串,调用
        • 创建RequestBody实例,注意需要指定提交的类型是application/json;chaarset=utf-8(api规定的编码格式)
        • 构建request实例对象时,调用.post(requestBody)表示使用JSON的方式提交数据

    request response对象

    使用一条语句执行调用请求,并取得返回结果字符串

    call.execute().body().string()
    

    获取响应状态码

    call.execute().code()
    

    请求图片、excel等非文本文件时,不能使用 response.body().string()

    response.body().bytes();
    

    JSON 很多api返回的文件内容是JSON格式的。JSON是一段文本,是java的字符串,是难以进行解析具体内容的。必须转换成Java的对象

    JSON.parseObject()
    

    headers

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

    在console中下载文件、图片

    • 写入文本文件

      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 换行

    cookie 和 session

    数据结构与算法入门

    emmmm 怎么说呢,

    web前端基础

    HTML元素的结构

    HTML标签

    1. 由尖括号包围关键词
    2. 多成对出现
    3. 等是单独呈现的
    • 嵌套

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SRqlKYpm-1673275878161)(D:\1ar\youkedai\图片合集\图片6.png)]

    1. 作用:告知浏览器该页面文件的文档类型,该声明必须在HTML文档的第一行,对大小写不敏感, 没有结束标签

    2. ..... 告知浏览器其自身是一个html文档,与

    标签限定文档的开始和结束,头部 主体 lang属性(语言属性):en表英文

    1. 属性标签
    2. 文档的头部
    3. 文档主体
    4. 注释 <dependency> <groupId>org.springframework.sessiongroupId> <artifactId>spring-session-coreartifactId> dependency>
    5. Spring Request 拦截器(HandlerInterceptor)

      1. 创建拦截器HandlerInterceptor 接口。可以在三个点进行拦截:
        1. Controller方法执行之前。这是最常用的拦截点。例如是否登录的验证就要在 preHandle() 方法中处理。
        2. Controller方法执行之后。例如记录日志、统计方法执行时间等,就要在 postHandle() 方法中处理。
        3. 整个请求完成后。不常用的拦截点。例如统计整个请求的执行时间的时候用,在 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
      
      1. 实现 WebMvcConfigurer

      Spring Data CRUD,类似于数据库

      1. 新增数据 插入mongoTemplate.insert()

      2. 查询数据 findById() mongoTemplate.findById(songId, Song.class)

      3. 修改数据

        // 修改 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());
        
      4. 删除数据

      Song song = new Song();
      song.setId(songId);
      
      // 执行删除
      DeleteResult result = mongoTemplate.remove(song);
      // 删除的记录数大于 0 ,表示删除成功
      System.out.println("删除的数据记录数量:" + result.getDeletedCount());
      

      前端的

      java基础复习_第17张图片
      在这里插入图片描述
      java基础复习_第18张图片

你可能感兴趣的:(入门,java,jvm,开发语言)