java基础
当得卷中卷,方为人上人
这个作者很懒,什么都没留下…
展开
-
java按照绝对值大小排序
nums = IntStream.of(nums) .boxed() .sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)) .mapToInt(Integer::intValue).toArray();上面那种方法, [[-2147483646,-2147483645],[2147483646,2147483647]] 排这种的时候会溢出所以最好比较大小,不要用减法!!!!!!!! Arrays.sort(p原创 2022-04-29 20:21:52 · 2743 阅读 · 0 评论 -
java按照绝对值大小排序
nums = IntStream.of(nums).boxed().sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)).mapToInt(Integer::intValue).toArray();原创 2022-04-27 20:12:01 · 1313 阅读 · 0 评论 -
做力扣题时,对函数传参的进一步理解
首先明白一点:java中基本类型是值传递,其他类型是引用传递首先是树节点的定义/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int原创 2022-04-09 16:06:01 · 820 阅读 · 0 评论 -
java List作为参数传递 以及List传值引用问题 list类型添加同一个list值会一起改变问题
在多次添加同一个list对象到另一个list里的时候List<List<Integer>> listtwo = new LinkedList<>(); List<Integer> list = new LinkedList<>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add原创 2022-04-08 20:40:11 · 6248 阅读 · 0 评论 -
java实现螺旋矩阵 letcode代码笔记
要如何画出这个螺旋排列的正方形矩阵呢?要写出正确的螺旋矩阵一定要坚持循环不变量原则。要在螺旋矩阵的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。而求解本题依然是要坚持循环不变量原则。模拟顺时针画矩阵的过程:填充上行从左到右填充右列从上到下填充下行从右到左填充左列从下到上由外向内一圈一圈这么画下去。可以发现这里的边界条件非常多,在一个循环中,如此多的边界条件,如果不按照固定规则来遍历,那就是一进循环深似海,从此offer是路人原创 2022-03-21 16:50:56 · 381 阅读 · 0 评论 -
模块化
注意:!!!exports 包名 requires 模块名服务模块的引用原创 2021-10-16 21:48:47 · 76 阅读 · 0 评论 -
零基础学反射笔记
反射概述Class就是类的镜像获取Class类对象三种方法反射获取构造方法并使用练习暴力反射当构造函数为私有时,使用setAccessible() 可以访问私有成员Class获取成员变量并使用Class<?> aClass = Class.forName("Students.Student"); Constructor<?>[] constructors = aClass.getConstructors();// f原创 2021-10-16 15:03:12 · 78 阅读 · 0 评论 -
Stream流以及常见中间和结束操作方法
arry.stream().filter(s->s.length()==3).filter((String s)->{return s.startsWith("张");}).forEach(s-> System.out.println(s));Stream流的生成操作filter()过滤原创 2021-10-15 22:16:38 · 1279 阅读 · 0 评论 -
常用函数式接口之Supplier接口、Consumer接口、Predicate接口、Function接口
SupplierConsumer上面两句的效果和下面一句是一样的原创 2021-10-14 20:23:39 · 101 阅读 · 0 评论 -
函数式接口概述
函数式接口概述函数式接口就是lambda表达式的使用前提原创 2021-10-08 18:39:59 · 78 阅读 · 0 评论 -
方法引用四个方法
public class fangfaDemo { public static void main(String[] args) { useint(i->{ System.out.println(i); }); useint(System.out::println);//相当于把printlin方法 当成实例化方法和lambda作用一样 } private static void useint(fan.原创 2021-10-08 16:06:11 · 97 阅读 · 0 评论 -
Lambda综述
Lambda表达式标准格式标准格式:(形参)->{代码块}形参:如果有多个参数,参数间用逗号隔开,若没有参数,留空即可Lambda使用前提正常方法、匿名内部类、Lambda表达式抽象方法无参无返回值public static void main(String[] args) { EatableImpl impl=new EatableImpl(); impl.eat();//正常 useeat(new EatableDemo() {.原创 2021-09-25 19:51:28 · 80 阅读 · 0 评论 -
生产者和消费者
原创 2021-09-24 17:45:59 · 82 阅读 · 0 评论 -
线程安全的类 StringBuffer Vector Hashtable
StringBuffer一般在正常使用StringBuffer sb=new StringBuffer(); StringBuilder db2=new StringBuilder(); Vector<String> vec=new Vector<>(); ArrayList<String> arry=new ArrayList<>(); Hashtable<String,Strin.原创 2021-09-24 16:52:53 · 143 阅读 · 0 评论 -
多线程 安全问题解决方法 Lock锁
Thread类实现方法public static void main(String[] args) { Threaddemo d1=new Threaddemo("大炮"); Threaddemo d2=new Threaddemo("飞机"); d1.start(); d2.start(); }public class Threaddemo extends Thread { @Override public原创 2021-09-24 16:01:10 · 90 阅读 · 0 评论 -
集合类大家族、迭代器、迭代器并发控制异常、
1 Collection集合迭代器iterator常用操作原创 2021-09-23 21:11:10 · 70 阅读 · 0 评论 -
Map集合学习笔记
Map集合概述Map基本方法Map获取方法Map<String,String> map=new HashMap<>(); map.put("aaa","123"); map.put("bbb","456"); map.put("ccc","789"); map.put("ddd","852"); System.out.println(map.get("aaa"));//123原创 2021-09-23 21:10:28 · 99 阅读 · 0 评论 -
可变参数学习笔记(int ...a可接受可变的参数)
注:如果方法出现多个参数,应把可变参数放在参数最后面private static int sum(int ...a){ int num=0; for(int i:a) { num+=i; } return num; } public static void main(String[] args) throws ScoreException { System.out..原创 2021-09-22 09:22:40 · 87 阅读 · 0 评论 -
泛型学习笔记
一.泛型概述泛型类的定义格式泛型方法定义格式泛型接口定义格式原创 2021-09-22 08:41:01 · 60 阅读 · 0 评论 -
内部类学习笔记
内部类访问特点:内部类可以直接访问外部类的成员,包括私有外部类要访问内部类的成员,必须创建对象外界调用成员内部类方法:outer.inner oi=new outer().new inner();//但一般不建议这样做,因内部类本来就不想给外界看。成员内部类:内部类是外部类的成员...原创 2021-09-18 20:26:55 · 60 阅读 · 0 评论 -
static访问特点
static类型的变量被类的所有对象共享原创 2021-09-18 20:26:33 · 79 阅读 · 0 评论 -
增强for循环
注:增强for循环的底层原理是iterator迭代器,所以要小心并发修改异常。并发性异常示例List<String> list=new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); ListIterator<String> stringListIterator = list.listI.原创 2021-09-18 09:09:10 · 82 阅读 · 0 评论 -
异常体系 throws 和 try catch 自定义异常类
异常体系异常处理throws处理,出现异常直接扔到控制台,不能继续执行程序try catch 还可以继续执行程序自定义异常类只要是继承了Exception or RuntimeException 的类都是自定义异常类原创 2021-09-14 10:46:44 · 60 阅读 · 0 评论 -
Date和simpledateformat类
Date类的常用方法Date d=new Date(); SimpleDateFormat sdf=new SimpleDateFormat(); String s=sdf.format(d); System.out.println(s);//2021/9/14 上午9:13 SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss"); St.原创 2021-09-14 09:32:25 · 70 阅读 · 0 评论 -
基本类型包装类、int--string互相转换、自动拆箱和装箱
public static void main(String[] args) { Integer i1=new Integer(100); Integer i2=new Integer("500"); System.out.println(i1); System.out.println(i2); Integer i3=Integer.valueOf(100); Integer i4=Integer.value..原创 2021-09-11 11:25:22 · 135 阅读 · 0 评论 -
Math类、system、object类、Arrays类常用方法、工具类设计思路
工具类设计思路:构造方法:private 防止别人访问成员方法:public static 可以通过类名调用原创 2021-09-11 11:13:32 · 78 阅读 · 0 评论 -
接口和Java 8 9的新特性
以门为实例,门有开门,关门,报警三个方法如果用抽象类,那么每个实例化的门都必须有三种方法,现实是有的门没报警功能如果用接口原创 2021-09-08 21:28:12 · 96 阅读 · 0 评论 -
抽象类注意事项
public abstract class Animal { public int age=10; public abstract void eat(); 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类}特点原创 2021-09-08 20:52:42 · 62 阅读 · 0 评论 -
多态的区分
public class Cat extends Animal { public int age=20; public void eat(){ System.out.println("猫吃鱼"); }}public class Animal { public int age=10; public void eat(){ System.out.println("动物吃东西"); }}public class inp.原创 2021-09-07 21:42:47 · 72 阅读 · 0 评论 -
包权限修饰符的访问关系 final在变量 方法 类中的作用
原创 2021-09-07 19:26:37 · 55 阅读 · 0 评论 -
继承的格式和this super用法 构造方法访问特点,继承注意事项
原创 2021-09-07 10:38:42 · 65 阅读 · 0 评论 -
StringBuilder
常规string,会浪费堆内存空间stringbuilder 可变的,不会浪费空间stringbuilder方法:append()添加数据,并返回数据本身(可链式编程)System.out.println(sb+" "); sb.append("a").append("b").append("c"); System.out.println(sb);//sb=abcreverse():返回一个相反的字符序列string 与stringbuilder相互转换原创 2021-09-07 09:44:01 · 83 阅读 · 0 评论 -
next和nextline区别
//next()和nextLine()的区别详解/*next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。*//*nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有转载 2021-09-07 08:55:34 · 193 阅读 · 0 评论 -
API作用
API(application programming interface) 应用程序接口原创 2021-09-07 08:54:30 · 81 阅读 · 0 评论 -
this关键字作用
原创 2021-09-07 08:25:18 · 73 阅读 · 0 评论 -
idea快捷键和辅助键
原创 2021-09-06 21:33:19 · 78 阅读 · 0 评论 -
JVM、JRE、JDK三者联系
JDK(java development kit)JRE(java runtime environment)JVM(java virtual machine)原创 2021-09-06 20:57:45 · 56 阅读 · 0 评论