Java-基础知识
数据类型和运算数制转换 隐式转换 取值范围:byte < short < int < long < float < double 转换规则1:取值范围不同,小的会先提升为大的,再进行运算 转换规则2:byte short char 三种类型在运算时,会先提升为int,再运算 (注:最终结果为int 强制转换 把取值范围大的数值赋值给取值范围小的变量(有时会出错 格式:目标数据类型 变量名 = (目标数据类型)被强转的数据 例:123byte b1=10;byte b2=20;byte...
存档
松鼠兔子大冒险开始游戏!
算法 差分数组 | 前缀和
差分数组 差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。 对 nums 数组构造一个 diff 差分数组,**diff[i] 就是 nums[i] 和 nums[i-1] 之差** 1234567int[] diff = new int[nums.length];// 构造差分数组diff[0] = nums[0];for (int i = 1; i < nums.length; i++) { diff[i] = nums[i] - nums[i - 1];} 1234567int[] res = new int[diff.length];// 根据差分数组构造结果数组res[0] = diff[0];for (int i = 1; i < diff.length; i++) { res[i] = res[i - 1] + diff[i];} 利用差分数组,我们可以高效地对原始数组的某个区间进行修改操作,而无需遍历整个区间。具体步骤如下: 对于要修改的区间 [start,...
算法 二分查找
环形数组循环遍历i = ( i + 1 ) % cap i = (i + 1) % cap 是一个常见的用于实现循环遍历数组或环形缓冲区的技巧。在这个表达式中,i 是当前的索引,cap 是数组或缓冲区的容量。使用 (i + 1) % cap 可以将索引 i 增加1,并在达到容量上限时循环回到索引0。具体来说,当 i 增加1时,如果超过了容量 cap,(i + 1) % cap 将会得到取余后的结果作为新的索引值。如果 i 达到了 cap - 1,则 (i + 1) % cap 的结果为0,从而实现了循环遍历的效果。这种循环遍历的方式常用于需要按顺序访问数组或缓冲区的场景,而且希望在达到边界时能够循环回到起点。注意,使用 (i + 1) % cap 进行循环遍历时,要确保 cap 大于0,以避免除以0的错误。 元素索引nums[i] 的前一个元素是 nums[(i-1)%n] ,下一个元素是 nums[(i + 1) % n] 增强for遍历二维数组123456int[][] nums = {{1, 2, 10}, {3, 5,...
算法 自己归纳的一些技巧
环形数组循环遍历i = ( i + 1 ) % cap i = (i + 1) % cap 是一个常见的用于实现循环遍历数组或环形缓冲区的技巧。在这个表达式中,i 是当前的索引,cap 是数组或缓冲区的容量。使用 (i + 1) % cap 可以将索引 i 增加1,并在达到容量上限时循环回到索引0。具体来说,当 i 增加1时,如果超过了容量 cap,(i + 1) % cap 将会得到取余后的结果作为新的索引值。如果 i 达到了 cap - 1,则 (i + 1) % cap 的结果为0,从而实现了循环遍历的效果。这种循环遍历的方式常用于需要按顺序访问数组或缓冲区的场景,而且希望在达到边界时能够循环回到起点。注意,使用 (i + 1) % cap 进行循环遍历时,要确保 cap 大于0,以避免除以0的错误。 元素索引nums[i] 的前一个元素是 nums[(i-1)%n] ,下一个元素是 nums[(i + 1) % n] 增强for遍历二维数组123456int[][] nums = {{1, 2, 10}, {3, 5,...
Java-集合
->自动扩容->长度可变->只能存储引用数据类型,存基本数据类型要转化为对应的包装类 基本操作创建:ArrayList<引用数据类型> list = new ArrayList<>(); 以String为例 增:boolean add(E e) list.add(""); 删:boolean remove(E e) list.remove("");E remove(int index) list.remove(0) 改:E set(int index, E e) list.set(1,""); 查:E get(int index) list.get(0);int size() –获取长度 基本数据类型对应的包装类char –> Characterint –> Integer byte / short / long / float / double / boolean –> ...
Java字符串
键盘录入12Scanner sc = new Scanner(System.in);String str = sc.next(); 比较 == 号比的是什么?→基本数据类型:数据值→引用数据类型:地址值 1234String s1 = new String("abc"); //记录堆里的地址值// 注:键盘录入是new出来的String s2 = "abc"; // 记录串池中的地址值System.out.println(s1==s2); //false 遍历123public char charAt(int index) // 根据索引返回字符public int length() // 返回字符串的长度字符串长度.length() // 字符串长度 123456for(int i=0; i<str.length(); i++){ char c = str.charAt(i); System.out.println(c);} // 获取单个字符forr //...
Java面向对象
面向对象的三大特征:封装、继承、多态 封装 对象代表什么,就得封装对应的数据,并提供数据对应的行为。 private关键字 是一个权限修饰符,被修饰的成员变量只能在本类中才能访问 对于被private修饰的成员变量,如需被其他类使用,要提供相应的操作 12public void setxxx(参数){}public 数据类型 getxxx(){} this关键字 用来区分成员变量和局部变量 本质:代表当前方法调用者的地址值->成员变量与局部变量重名时,遵循就近原则 1this.属性 构造方法(构造器、构造函数) 在创建对象时给成员变量进行初始化 如果没有定义构造方法,系统将给出一个默认的无参构造;反之则不提供。 一般手动两种都写 格式: 123456修饰符 类名(){ 方法体;}修饰符...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment