Boolean类型

java中 返回true or false

而在C语言中 返回0表示false 其余皆为true

类型转换
隐式类型转换

隐式类型转换支持字节数小的类型自动转换为字节数大的类型,整数类型自动转换为小数类型,转换规则如下:

● byte→short(char)→int→long→float→double

是全长度参与计算 , 所以看似小的float也可以容纳long , 只是会丢失部分精度

显示类型转换

显式类型转换也叫做强制类型转换,也就是说,违反隐式转换的规则,牺牲精度强行进行类型转换。

String builder

int a = 1;
int b = 2;
System.out.println(a+b);
// 输出 12 调用String builder方法相加
for循环

for无限循环

for (; ; ) {
//循环执行的内容
}

for(;{}

while(true){}

2022年9月26日19:49:02

算法问题收集:

相同

青蛙台阶问题

斐波那锲数列

通项公式

递归
if (n == 0 || n == 1) return 1;
return fib(n - 1) + fib(n - 2);
2022年10月4日20点31分

String是一个类 不是基本类型 String定义的变量也是引用类型的变量

scanner内部使用流 用完之后需要close();

2022年10月5日12点21分
  1. 成员变量

    就是预先在其他类中定义的各种类型的变量

    是属于对象的

    也可以预先给定成员变量初始值
  • int整型不给初始值 默认是0
  • String不给初始值 默认是null
  1. 成员方法
  • java给封装好的方法
  1. 方法
  • 一堆语句的集合

    • 需要有返回值
    • 可以没有返回值
    • 主方法不能有返回值 只能为void

在方法中 return是直接结束程序 break是跳出循环 然后继续向下执行

21点33分

基本类型只会传值 而引用类型会带着变量而变化

2022年10月10日21:17:10

  • 成员属性

    指对象所具有的,某具体的对象才能使用的属性

    实例化出来的对象能直接进行使用的属性才叫做成员属性
  • 静态变量和静态方法

    是属于类的内容 , 是所有对象共享的

    -- 通过static声明后的变量或者方法是静态的

    所有通过这个类创建的对象都是操作的同一个目标 , 一旦被改变 那么之后读取的都是改变后的值

    一般直接通过类调用静态属性 而不是通过实例化后的对象

    在java中 每一个类生成一个.class文件,丢给JVM去执行, 而JVM并不会一开始就加载全部的类和方法

    • 只有遇到

      - 访问类的静态变量 , 或者为静态变量赋值

      - new创建类的实例(隐式加载)

      - 调用类的静态方法

      - 子类初始化时

      所有静态内容(含有static关键字) 会在类刚加载的时候就分配 而不是实在对象创建的时候分配 , 所以 静态的内容会在第一个对象初始化前加载完成

2022年10月12日14:40:27

  • 如果全部都有被调用 则顺序为

    • 静态变量
    • 静态代码块
    • 成员变量
    • 普通代码块
    • 构造方法

      反之如果没有调用 则不会加载
  • 访问权限控制

    public > protected > default(不指定) > private

    • 静态导入

      其作用是用于导入指定类的静态属性,这样我们可以直接使用静态属性
  • 封装 , 继承 , 多态

    • 类的封装

      把对象和方法结合在一起成为一个整体 隐藏内部细节 提供访问接口

      目的是为了保证变量的安全性

2022年10月15日12:47:19

  • 静态构造方法

    在类中采用static关键字+类名+封装名来直接封装构造方法
总结: 封装就是通过权限控制来实现对 类 的访问
  • 继承

    • A extends B

      称B是A的父类 或者 超类(super)

      父类中可见的所有属性都可以被访问 除了 private

      而父类B无法直接使用子类A中的方法 , 只能使用自身所包含的所有方法
    • 在不同的类中 可以定义 重名的成员变量

      在子类存在和父类同名关键字时 如name 则要访问父类的name应该使用 super.name
  • 区分
    • this.name是指当前的类
    • super.name是指父类(super不能连续向上)

2022年10月16日18:15:13

  • 方法的重写

    • 含义

      将本来有的覆盖掉 体现了多态的 特性, 重载是 使方法 多样化

      2022年10月17日09:47:34

    • @Override

      使用该关键字进行说明检查

    • 在子类重写后的方法中调用重写前的方法 达到再次使用的目的

      使用super关键字

    • 禁止重写

      在方法中添加final关键字, 表示该方法已经是最终形态 , 不可再修改

    • final

      用在方法中 只能重载 不能重写

    • static方法

      无法使用this和super关键字

  • 抽象

    • 概念

      只保留方法的定义 不编写方法的主体内容
  • 抽象类

    • 一般只用作继承
    • 和普通类相比可以具有抽象方法
    • 同时可以有抽象方法和实现方法
  • 抽象方法

    定义在抽象类中的带有abstract关键字的方法

    该方法由具体的子类来实现

    • 子类

      必须使用@override重写 实现 抽象方法(新建idea会提示实现抽象方法的重写)
    • 访问权限不能为private , 否则子类无法使用

2022年10月17日21:03:13

  • 接口

    -接口可以有多个实现 , 但是在java中只能单继承

    -抽象方法默认实现

    - default void test(){}

2022年10月18日11:07:45

  • 接口是 多继承

    • 重名方法

      • 允许重名方法,但是重名方法是直接进行覆盖 并非多个同名方法
    • 实现方法访问顺序(子类继承 实现接口)
      • 子类 -> 父类 -> 接口
    • Object类不能在接口中定义默认实现 只能抽象的调用

      直接定义默认实现是没有意义的 最终都会继承自Object

2022年10月20日16:13:34

  • 枚举

    --- 属于java.lang.Enum

2022年10月21日21:11:46

  • 基本类型包装类

    • 以对象的形式使用基本类型

    • 包装类:

      • Character
      • Number
        • short
        • Byte
        • Integer
          • 自动装箱
          Integer i = 10;
          相当于
          Integer i = Integer.valueOf(10);

          因为包装的是一个类 不是基本类型 所以是两个不同的对象(虽然值相等)

          • 自动拆箱
          Integer i  = 11;
          int a = i;

          虽然是引用类型 但是可以借助自动拆装直接参与运算

          自动装箱的相等 仅在range -128 to 127,如果超出 得到的对象就不想同了

        • Float
        • Double
      • Boolean

        void对应的包装类型也是Void
    • 特殊的包装类型

      • BigInteger

        • 不支持自动拆箱装箱
        • Integer属于final类型 不能再修改
          BigInteger i = BigInteger.valueOf(100);
          BigInteger o = i.multiply(BigInteger.TEN);
          System.out.println(i);
          System.out.println(o);
          输出
          100
          1000
        • 计算幂 数
        //        计算 幂
        BigInteger a = BigInteger.valueOf(Long.MAX_VALUE);
        BigInteger b = a.pow(100);
        System.out.println(b);

2022年10月22日09:50:19

  • 数组

    • 一维数组

      • foreach(增强for循环)

        用于遍历数组的每一个元素

        编译后还是普通的for循环格式 属于是皮肤了

        基本类型的数组不支持自动拆箱装箱

        由于基本类型和引用类型不同 所以int类型的数组不能被Object类型的数组变量接收
      • 数组支持向上转型
        String [] arr1 = new String[10];
        Object [] test = arr1;
        System.out.println(arr1.getClass());
      • 支持向下转型

2022年10月29日11:22:59

  • 断言表达式

    • 属于jvm默认关闭的功能 判断失败会抛出错误 (作用不大)
    • 语法(先开启 在jvm中开启 -enableassertions)
      关键字 assert
      // 判断结果 true为继续运行
      assert true;
      // 判断结果 false为跳出程序 返回错误1
      assert false;
      // 举例
      int a = 10;
      assert a>10 : "a是大于10的"
    • 开启断言过程
      • 1

      • 2

      • 3

      • 效果
        • 断言判断为false

        • 断言判断为true

        • 举例(assert是错误提示)

2022年10月29日17:48:18

  • 数学工具类

2022年10月30日15:29:06

  • 数组工具类

    • Arrays

      • ToString 一维数组遍历
        int[] arr1 = new int[]{1, 23, 1};
        System.out.println(Arrays.toString(arr1));
      • deepToString多维数组遍历
        int [] [] array = new int[][] {{1,2,3},{3,5,9,7}};
        System.out.println(Arrays.deepToString(array));
      • equals 相等 true为相等 false不相等
        int [] a = new int[] {1,2,34,5};
        int [] b = new int[] {1,2,34,5};
        System.out.println("是否是用一个数组"+Arrays.equals(a,b));
        • 三维数组
          //        三维数组
          int[][][] a11 = new int[][][]{
          {{1, 2, 34, 5}, {1, 2, 34, 5}},
          {{1, 2, 34, 5}, {1, 2, 34, 5}}
          };
          int[][][] b11 = new int[][][]{
          {{1, 2, 34, 5}, {1, 2, 34, 5}},
          {{1, 2, 34, 5}, {1, 2, 34, 5}}
          };
          System.out.println(Arrays.deepEquals(a11,b11));

2022年12月4日18点44分

  • 泛型
  • 泛型&&数组工具类
    • 代码
     Arrays.sort(arr, new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
    return 0;
    }
    });
    • 解释

      这里new Comparator 是一个接口

      比较其两个参数的顺序。当第一个参数小于、等于或大于第二个参数时,返回负整数、零或正整数。在前面的描述中,符号sgn(expression)表示数学符号函数,它被定义为根据表达式的值是负、零还是正返回-1、0或1中的一个。实现者必须确保所有x和y的sgn(compare(x,y))-sgn(compare,x))实现者还必须确保关系是可传递的:((compare(x,y)>0)&&(compare)y,z)>0)表示比较(x,z)>0。最后,实现者必须确保compare(x,y)0表示所有z的sgn(compare,z)==sgn(比较(y,z。一般来说,任何违反这一条件的比较器都应明确指出这一事实。推荐的语言是“注意:此比较器强制执行与等于不一致的排序。”参数:o1–要比较的第一个对象。o2–要比较的第二个对象。返回:负整数、零或正整数,因为第一个参数小于、等于或大于第二个参数。抛出:NullPointerException–如果某个参数为空,并且此比较器不允许空参数ClassCastException–如果参数的类型阻止此比较器对其进行比较。

      总结: 返回大于零则大于 小于零则小于 等于零则等于

      	Arrays.sort(arr, new Comparator<Integer>() {
      @Override
      public int compare(Integer o1, Integer o2) {
      return o2-o1;

// 返回值 大于0表示前面大 小于0表示前面小 等于0表示相等

// 可以写 前面减去后面 表示从小到大

// 或者 替换前后关系

// 则表示为 后面减去前面 表示从大到小

}

});

````

2022年12月8日

  • 泛型 -- 类型擦除机制

    实际上 对于泛型而言 在编译后是执行对应的上界的类 普通不指定上界就是执行Object类

    其实际类型以上界为准 而不是用到谁就是什么类型

    换而言之 只要不指定 类型根据使用的类型而定

2022年12月9日

问题记录:

桥接方法没看懂, 此处编译后生成重写的桥接方法来调用 自己编写的方法
  • 泛型类型不支持创建参数化类型数组
// 此处不能指定new出来的数组泛型的实际类型
Test<String>[] arr = new Test[10];
  • 函数式接口

    属于1.8新特性 专供于lambda表达式

    lambda表达式: 必须是一个接口 接口中有且只有一个需要实现(未实现)的方法,也可以包含其他已经实现的方法

    • 例子

      • supplier
      @FunctionalInterface
      public interface Supplier<T> {
      T get();
      }

2022年12月29日

  • 二叉查找树

    特点 左孩子比结点小 右孩子比节点大
  • 平衡二叉树
    • 一定是二叉查找树
    • 任意结点的左子树一定是一颗平衡二叉树
    • 从根结点开始 左右子树高度差不超过1 否则视为不平衡

2023年1月11日

  • Map(键值对)

    • set

      • hashSet(无序创建线性表)
      • linkedHashSet(有序的线性表)

        本质上来说是一个LinkedHashMap, 其底层调用的都是map的方法
  • stream流
    • filter(条件)

      过滤器 满足条件的都留下 (筛选的条件是什么)
    • distinct

      去除重复
    • collect

      整合最终结果

      collect(Collectors.toList()) // 整理起来 再转为list

2023年1月16日

- 问题记录:
FileInputStream文件读取流, 再使用强制类型转换时输出会造成乱码 ```
public class Main {
public static void main(String[] args) {
// 绝对路径 完整的路径
// FileInputStream inputStream = new FileInputStream("E:\\learning\\java2022\\javase_bili\\src\\main\\java\\new2\\se108相对路径和绝对路径\\new1.txt");
//// 相对路径
// FileInputStream inputStream1 = new FileInputStream("src/main/java/new2/se108相对路径和绝对路径/new1.txt");
// 项目 根目录
// FileInputStream inputStream3 = new FileInputStream("new1.txt");
// utf8中文字符 占三个字节
try (FileInputStream inputStream3 = new FileInputStream("new1.txt")) {
System.out.println(inputStream3);
// 字节流读取
int i = inputStream3.read();
System.out.println((char) i);
int j = inputStream3.read();
System.out.println((char) j);
int k = inputStream3.read();
System.out.println(k);
} catch (IOException e) {
// throw new RuntimeException(e);
e.printStackTrace();
}
}
}
```

javase重开2022年9月21日的更多相关文章

  1. 【每日一题】【暴力、动态规划、动规优化、贪心】2022年1月21日-NC19 连续子数组的最大和/最大子序和

    同:最大子序和 https://www.cnblogs.com/liujinhui/p/15574312.html 描述输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组. ...

  2. 【笔面试真题】ThoughtWorks-笔试-2022年1月21日

    一.选择填空判断 2n-1 二.算法题 算法题1:配对括号 算法题2:计算有效票数? 算法题3:求字符串中指定单词的数量 package com.jhliu20.real; import java.u ...

  3. Java学习笔记:2022年1月7日

    Java学习笔记:2022年1月7日 摘要:今天的这篇笔记主要是通过讲解基本的JVM结构来理解Java中一些行为的运行机制,进而更加的深入理解Java的运行原理. 目录 Java学习笔记:2022年1 ...

  4. 2016年12月21日 星期三 --出埃及记 Exodus 21:16

    2016年12月21日 星期三 --出埃及记 Exodus 21:16 "Anyone who kidnaps another and either sells him or still h ...

  5. 2016年11月21日 星期一 --出埃及记 Exodus 20:12

    2016年11月21日 星期一 --出埃及记 Exodus 20:12 "Honor your father and your mother, so that you may live lo ...

  6. 2016年10月21日 星期五 --出埃及记 Exodus 19:5

    2016年10月21日 星期五 --出埃及记 Exodus 19:5 Now if you obey me fully and keep my covenant, then out of all na ...

  7. 成都Uber优步司机奖励政策(2月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 长沙4月21日开发者大会暨.NET社区成立大会活动纪实

    活动总结 2019年4月21日是一个斜风细雨.微风和煦的美好日子,由长沙.NET技术社区.腾讯云云加社区.微软Azure云技术社区.中国.NET技术社区.长沙柳枝行动.长沙互联网活动基地(唐胡子俱乐部 ...

  9. 【12月21日】A股滚动市盈率PE历史新低排名

    2010年01月01日 到 2018年12月21日 之间,滚动市盈率历史新低排名.上市三年以上的公司,2018年12月21日市盈率在300以下的公司. 1 - 厦门象屿(SH600057) - 历史新 ...

  10. 成都Uber优步司机奖励政策(4月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

随机推荐

  1. 如何让其他模型也能在SemanticKernel中调用本地函数

    在SemanticKernel的入门例子中: // Import packages using Microsoft.SemanticKernel; using Microsoft.SemanticKe ...

  2. 基础篇:Stable Diffusion 基础原理详述

    [基础篇]Stable Diffusion 基础原理详述 前言 我认为学习 ComfyUI 应该先从理论学起. 与传统绘图工具(如 Photoshop 或 Figma)相比,AI 绘图工具有着显著不同 ...

  3. SpringBoot 处理xss攻击

    添加依赖 <!-- xss跨站脚本攻击 --> <dependency> <groupId>net.dreamlu</groupId> <arti ...

  4. SpringBoot排查自动装配、Bean、Component、Configuration配置类

    排除自动装配AutoConfiguration @SpringBootApplication( exclude = { DataSourceAutoConfiguration.class, Mybat ...

  5. [无线隔离]同一WIFI下两主机无法互联

    问题描述 在公司WIFI下想进行两台主机之间的数据传输,却发现虽在同一网段且防火墙关闭也无法ping通. 在一台主机下查看ARP表,发现没有对方的IP与MAC记录. 使用Wireshark抓包,发现虽 ...

  6. 【算法】用c#实现自定义字符串编码及围栏解码方法

    编写一个函数/方法,它接受2个参数.一个字符串和轨道数,并返回ENCODED字符串. 编写第二个函数/方法,它接受2个参数.一个编码字符串和轨道数,并返回DECODED字符串. 然后使用围栏密码对其进 ...

  7. 解决方案 | tk.entry数字验证(输入框如何保证只能输入数字)

    from tkinter import * root = Tk() # 创建文本框 entry = Entry(root) entry.pack() # 设置文本框只能输入数字 entry.confi ...

  8. 要想业务中台建得快,最好用Service Mesh来带

    中国企业数字化转型进入深水区,业务中台及下一代微服务Service Mesh(服务网格)被越来越多的人关注,本文结合网易轻舟微服务Service Mesh实践,解析业务中台为什么需要Service M ...

  9. 【数据集】Maple-IDS——网络安全恶意流量检测数据集

    一.数据集介绍 Maple-IDS数据集是一个网络入侵检测评估数据集,旨在增强异常基础入侵检测系统(IDS)和入侵预防系统(IPS)的性能和可靠性.随着网络空间安全领域攻击的日益复杂化,拥有一个可靠和 ...

  10. 怒肝半月!Python 学习路线+资源大汇总

    Python 学习路线 by 鱼皮. 原创不易,请勿抄袭,违者必究! 大家好,我是鱼皮,肝了十天左右的 Python 学习路线终于来了~ 和之前一样,在看路线前,建议大家先通过以下视频了解几个问题: ...