
Java
Java基础知识
就是有点傻
我自飘零我自狂,犹如野鹤游四方
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java中的字符流
字符流写完要输出刷新 不然文本上不会有显示 close()是先刷新再关闭 所有close()有刷新的功能。void write(char[] cbuf,int off,int len)写入一个字符数组的一部分。void (String str,int off,int len)写入一个字符串的一部分。String s1 = new String("你好");因为将字符串转换成字节数组的时候用的是UTF-8一个汉字三个字节。而将字节数组转换为字符的时候我们用的是GBK两个字节 一个汉字。原创 2024-05-02 22:32:02 · 1552 阅读 · 2 评论 -
Java中的Map集合
System.out.println(entry.getKey()+"出现了"+entry.getValue()+"次");System.out.println(map.containsKey("李四"));System.out.println(map.remove("张三"));System.out.println(map.get("张三"));map.put("张三","hello");map.put("张三","hello");map.put("张三","hello");原创 2024-04-28 19:36:11 · 1093 阅读 · 2 评论 -
字符缓冲流的特有功能
BuffereReader:public String readLine():读一行文字,结果包含的内容的字符串,如果流的结尾已经到达,则为null。BufferedWrite中:用void newLine()写一行行分隔符,分隔符由系统属性定义。原创 2024-05-03 09:49:00 · 246 阅读 · 0 评论 -
Java中的进程和线程
进程是正在运行的程序,是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源线程是进程中单个顺序控制流,是一种执行路径单线程: 一个进程如果只有一条路径则被称为单线程多线程: 一个进程如果有多条执行路径,则被称为多线程。原创 2024-05-03 17:38:58 · 1501 阅读 · 1 评论 -
Java中的Lambda表达式
System.out.println("好好学习才可以找到好工作");System.out.println("好好学习才可以找到好工作");System.out.println("好好学习才可以找到好工作");小括号里面的的参数类型可以省略 但是如果省略要一起省略 如果加参数类型也是一起加。形式参数:如果有多个参数,参数之间用逗号隔开 如果没有参数,留空即可。//在主方法中调用userinterface方法。//在Lambda方法中调用方法。格式:(形式参数)->{代码块}接口中有且仅有一个抽象类。原创 2024-05-03 23:01:04 · 475 阅读 · 0 评论 -
Java中接口的默认方法
默认方法不是抽象方法,,所以不强制被重写,但是可以重写 默认方法中的public可以省略 但是default不可以省略。当我们把一个程序的接口写完后 用其他的类去实现,此时如果程序需要再添加一个抽象方法的时候我们只有两种选择。将抽象方法写在原本的接口中 但是这样写会导致其他所有改接口的实现类都需要实现这个抽象方法比较麻烦。因为当实现类实现多个接口的时候 而这些接口中刚好有重名的静态方法时,程序不知道调用哪一个。默认方法可以调用私有的静态方法和非静态方法 静态方法只能调用私有的静态方法。原创 2024-05-03 23:45:21 · 2845 阅读 · 0 评论 -
Java中的Set集合和Hash值和TreeSet的使用
student s1 = new student("张三", 12);student s2 = new student("张三", 12);student s1 = new student("张三", 22);student s2 = new student("李四", 23);student s1 = new student("张三", 22);student s2 = new student("李三", 22);根据对象的哈希值计算对象的存储位置,如果该位置没有元素,就存储元素。原创 2024-04-28 16:03:07 · 1092 阅读 · 0 评论 -
Java中的List集合
ArrayList和LinkedList集合的比较ArrayList:底层数据结构是数组,查询快,增删慢LinkedList:底层数据结构是链表,查询慢,增删块。原创 2024-04-28 14:28:14 · 340 阅读 · 0 评论 -
Java中的并发修改异常
Iterator方法在每次遍历之前会对实际修改集合的次数和预期修改集合的次数进行比较。当两个值不相等时 则会报并发修改异常的错误。产生并发修改异常的原因。原创 2024-04-28 14:02:03 · 291 阅读 · 0 评论 -
Java中的Collection集合
集合分为Collection集合和Map集合(Collection集合是单列集合和Map集合双列集合)Collection和Map都为接口Collection集合又分为List集合(集合元素可重复)和Set集合(集合元素不可重复 )List和Set都为接口List集合分为ArrayList和LinkedList(ArrayList和LinkedList都为实现类Map集合分为HashMap集合(HashMap为实现类。原创 2024-04-27 14:16:22 · 1199 阅读 · 0 评论 -
Java中的ArrayList
ArrayList的特点可调整大小的数组实现:是一种数据类型。原创 2024-04-26 19:57:25 · 1324 阅读 · 0 评论 -
Java中的StringBuilder
StringBuilder是一个可变的字符串类(StringBuilder对象中的内容可变)System.out.println("反转之前的:"+sb);System.out.println("反转之后的:"+sb);StringBuilder()中的append方法可以添加。将StringBuilder转为String类型。将String转为StringBuilder。因为拼接字符串会造成前两个字符串的空间浪费。并且将添加的数据返回到数据本身。原创 2024-04-26 15:58:57 · 1647 阅读 · 0 评论 -
Java中的遍历字符串和统计字符次数
System.out.println("数字总共有:"+number+"大写字母总共有:"+capitalized+"小写字母总共有:"+lowercase);遍历字符串,首先要获取字符串中的每一个字符用charAt获取它能返回索引处的char值(也是从0开始遍历的)遍历字符串的长度用字符串对象.length();统计三种字符串的个数 三种字符的初始值都为0。然后让对应的字符+1。原创 2024-04-26 14:24:33 · 429 阅读 · 2 评论 -
Java中的string
下面的代码JVM会首先创建一个字符串数组,然后再每次new对象的时候都会有一个新的地址只不过s1和s2的值一样。通过new创建的字符串每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同。,无论代码出现多少次JVM都会创建一个String对象,并在字符串池中维护。String类代表字符串,Java中所有的字符串文字都是此类的实例。Java程序中所有的双引号字符串都是String的对象。直接赋值的方式创建字符串对象。虽然字符串的值是不可变的但是它们可以被共享。通过""创建出来的字符串,原创 2024-04-26 13:53:22 · 836 阅读 · 0 评论 -
Java中的自定义异常
return "doException{" +b+ "超过当前的可行范围" + '}';再通过定义基本的静态函数的方法定义报错的范围就是实现了一个基本的自定义异常。首先通过tostring方法打印报错的信息。原创 2024-04-25 22:22:18 · 244 阅读 · 0 评论 -
Java中的catch
System.out.println("最后一定会运行的");**try catch的快速书写 选中要抛出异常的代码块ctrl+Alt+T。catch会逐条去走 直到和监控的异常一样则抛出。try catch可以让程序不停下来 继续往前走。try是监控区 监控可能发生异常的代码块。原创 2024-04-24 23:12:41 · 392 阅读 · 0 评论 -
Java中的内部类
System.out.println("这个是外部类的方法");System.out.println("这个是内部类");System.out.println("年龄为"+age);in.get();通过out.new in();生成一个内部类对象 (内部类需要是public才能创建对象否则报错)通过内部类可以操作外部类 获得外部类的私有属性。原创 2024-04-23 21:41:25 · 788 阅读 · 0 评论 -
Java中的接口
System.out.println("你好");接口中的常量都是public static final 默认都是。接口中的方法都是public abstract 默认都是。implements接口必须实现接口中所有的类。接口不能被实例化,接口中没有构造方法。定义一些方法,让不同的人实现。原创 2024-04-23 19:40:52 · 375 阅读 · 0 评论 -
Java中的抽象类
System.out.println("实现抽象类");abstract抽象类,抽象类只能单继承,不能多继承 只有接口可以多继承。不能new这个抽象类,只能靠子类去实现它。继承的子类必须实现抽象类中的方法。抽象类本身是有构造方法的。抽象类中可以写普通方法。抽象方法必须在抽象类中。原创 2024-04-23 16:56:17 · 243 阅读 · 0 评论 -
Java中的static
System.out.println("匿名代码块");static {System.out.println("静态代码块");System.out.println("构造方法");执行的结果为先执行静态代码块 再执行匿名代码块最后执行构造方法 (System.out.println("匿名代码块");static {System.out.println("静态代码块");System.out.println("构造方法");。原创 2024-04-23 16:24:31 · 376 阅读 · 0 评论 -
Java中的多态
里面的person能够调用调用自己的方法或者被重写的方法(Student s1 = new Student();System.out.println("要吃一些东西");System.out.println("人都是爱玩的");System.out.println("人都需要学习");System.out.println("吃了一些东西");调用重写的方法结果是子类的。多态是方法的多态,属性没有多态。原创 2024-04-23 08:41:05 · 472 阅读 · 0 评论 -
Java中的重写
我们发现当方法为非静态方法的时候 Father father=new Son();idea的重写方法的快捷方式是 ALt+insert(有些电脑是Alt+insert+Fn)public static void 输出() {public static void 输出(){输出的结果为两个son 是因为子类重写了父类的方法。public void 输出() {public void 输出(){father.输出();father.输出();修饰符子类重写的方法的访问范围要。重写只和非静态方法有关。原创 2024-04-22 22:02:32 · 506 阅读 · 0 评论 -
Java中的super
因为在Java中 子类的无参构造默认在 public Person() { System.out.println("调用了父类的无参构造");中的System.out.println("调用了父类的无参构造");System.out.println("调用了父类的无参构造");System.out.println("调用了子类的无参构造");结果为先调用父类的无参构造 然后再调用子类的无参构造。super调用父类的构造方法必须在第一个。super和this不能同时调用构造方法。super调用的是父类。原创 2024-04-22 20:11:52 · 326 阅读 · 0 评论 -
Java中的继承
我们发现子类可以调用父类的public属性的字段但是在private中的字段 子类无法调用。System.out.println("有基本的食物要求");子类可以继承父类的protected、public修饰的方法和字段。teacher.name="就是有点傻";student.name="小明";继承是类与类之间的一种关系(还有依赖、组合、聚合)所有的类都直接或者间接的继承Object类。Java中只有单继承没有多继承。继承的本质是对一批类的抽象。没有显示父类中的sex字段。可以看到该类的继承结构。原创 2024-04-22 17:41:59 · 451 阅读 · 0 评论 -
Java中的封装
在代码中采用private属性进行封装 然后用get(),set()方法进行操作。统一接口,形成一个规范。系统的可维护性增加了。原创 2024-04-22 11:42:18 · 540 阅读 · 0 评论 -
Java中创建对象内存分析
System.out.println("叫了一声");Java中会把方法区的变量加载到堆里面的对象上。cat.name="肥波";原创 2024-04-22 10:46:36 · 255 阅读 · 0 评论 -
Java中的构造器
如果定义了有参构造 那么就不会默认的走Person person = new Person();如果没有自己手动的定义无参构造就不能使用。在idea中 用按键Alt+insert可以快速生成有参、无参构造(某些品牌的电脑可能是Alt+insert+Fn)先点击Constructor然后选择要构造的元素再点击OK是生成有参构造 点击Select None是生成无参构造。即使在类中什么都不写也会自动的生成一个构造器。使用new关键字是在调用构造器。原创 2024-04-21 22:55:07 · 326 阅读 · 0 评论 -
Java中的对象
在Java中类是物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些类进行单独思考,最后才是对某分类下的细节进行单独思考面向对象适合处理复杂问题适合处理需要多人协作的问题在Java中面向过程思维是 步骤清晰,第一步做什么,第二步做什么。面向过程适合处理较为简单的问题对于较为复杂的问题整体上采用面向对象的思维,具体的微观上采用面向过程的思维对象是具体事物,类是对对象的抽象(先有类,后有对象)原创 2024-04-21 20:21:31 · 541 阅读 · 0 评论 -
Java中的冒泡排序
先用外层的循环设置该排序需要进行多少次。在用内层循环每次选择出最大的数字。原创 2024-04-21 13:23:02 · 191 阅读 · 1 评论 -
Java中反转数组的写法
然后通过循环将arr的每一个数值通过倒赋值的方法进行赋值。这样得到的数组就是一个值的排列顺序和之前完全相反的。首先通过reserve传递形式参数arr。原创 2024-04-20 22:29:51 · 277 阅读 · 0 评论 -
Java中的数组(上)
i++) {i++) {是定义数组的两种方法其中int[] array1={1,2,3,4,5};是静态初始化而int[] array2=new int[10];是动态初始化数组的长度是固定的 数组中存储的数据类型是相同的 在定义数组中数组的长度被确立了数组中的元素相当于类的实例变量,因此数组一经分配空间,其中的每一个元素也被按照实例变量同样的方式初始化String变量在数组中的默认初始化是null,int类型的变量在数组中的初始化是0。原创 2024-04-19 23:17:37 · 543 阅读 · 1 评论 -
Java中的递归
递归头:什么时候不调用自身方法,如果没有头将会陷入死循环。在Java中方法自己调用自己叫做递归。为了保证递归的顺利进行需要以下条件。递归体:什么时候调用自身方法。能不用递归尽量不用递归。原创 2024-04-19 21:48:03 · 416 阅读 · 1 评论 -
Java中的可变参数
在上述代码中(double...a)是可变传参 方法中运用可变传参可以减少方法重载的次数。System.out.println("没有传递参数");可变传参只可以运用在方法的最后面 用在前面会报错 一个方法中只能用一个可变传参。原创 2024-04-18 22:57:37 · 304 阅读 · 0 评论 -
Java中的方法
上述代码中的 public static int add(int a,int b){ return a+b;}属于是自己书写的方法其中int a,int b属于形式参数add();属于方法名称方法还需要返回值 方法名称前面写的就是方法需要的返回值 在文中的方法返回值为int方法可以写修饰符static属于本文中方法的修饰符在main方法中 add(1,2)中的1和2 是实参方法体是方法具体的实施过程注意Java中的传参都为直传参。原创 2024-04-18 22:19:07 · 1873 阅读 · 0 评论 -
关于Java中打印对称三角形
这是对称三角形的一半 如果我们再打印一个相反的对称三角形那么我么可以得到一个长方形。我们要在之前打印对称三角形一半的基础上 每行少打印一个*就可以得到我们想要的结果了。剩下的结果也可想而知 让第一次打印的三角形的一半变成空格。换行一定要放在最后一行 每次输出完就换行。我们要明确三角形是由两个小三角形构成的。而我们可以首先打印对称三角形的一半。另一半三角形应该如何打印呢?下面就要进入重点地方了。原创 2024-04-17 23:11:26 · 717 阅读 · 0 评论 -
Java中的九九乘法表和增强for循环
第二个for循环的结束条件为当和第一个for循环的值相同时。增强for是把数组中的每一个元素赋值给i。在idea的快速生成方法 数组.for。在idea的快速生成方法 fori。打印的过程中要记得加空格来区分。原创 2024-04-16 21:37:48 · 402 阅读 · 0 评论 -
Java中的case
System.out.println("不匹配 ");System.out.println("不匹配 ");System.out.println("不匹配");System.out.println("不匹配");System.out.println("不匹配");System.out.println("不匹配");System.out.println("匹配");System.out.println("匹配");jdk7以后case后面支持写字符串。而加了break的case不会穿透。原创 2024-04-16 19:17:11 · 577 阅读 · 0 评论 -
关于Java中的Scanner总结
System.out.println("刚刚输入的为:");System.out.println("刚刚输入的为:");: next的结束输入是以空白为结束符 而nextline是以enter键为结束符。//属于io流的数据要尽量用完就关闭。//属于io流的数据要尽量用完就关闭。//用next方式接收数据。//用next方式接受数据。//判断用户有没有输入字符串数据。//判断用户有没有输入字符串数据。//用于接收键盘的输入数据。要注意next方法和nextLine的区别。//用于接受键盘的输入数据。原创 2024-04-16 12:35:03 · 575 阅读 · 0 评论 -
Java中的三目运算符
"不及格":"及格";意思是如果前面为true则返回"不及格" 如果前面为false则返回及格。"不及格":"及格";原创 2024-04-16 11:26:32 · 301 阅读 · 0 评论 -
Java中的&& || !以及Java中的移位运算
关于&&运算中int a=2;int b=4;执行的结果为为什么b的结果为4呢?关于||运算中int a=2;int b=4;执行的结果为因为||运算会都执行完成关于!运算int a=2;int b=4;执行的结果为在有其他逻辑运算中java会优先运算!原创 2024-04-15 20:38:49 · 481 阅读 · 1 评论