JavaSE
柯南二号
一个喜欢探讨Java后端技术的小白
展开
-
快速排序 Java模板
快速排序 Java模板原创 2022-04-05 22:25:40 · 1093 阅读 · 0 评论 -
从源码学习Java的HashMap中的computeIfAbsent/computeIfPresent方法
Java的HashMap中的computeIfAbsent方法public class Main { public static void main(String[] args) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 10); map.put(2, 20); map.put(3, 30);原创 2022-03-06 17:01:05 · 471 阅读 · 0 评论 -
java的String类下substring方法源码解读
java的String类下substring方法源码解读 /** * Returns a string that is a substring of this string. The * substring begins with the character at the specified index and * extends to the end of this string. <p> * Examples: * <bloc原创 2021-12-21 12:36:14 · 352 阅读 · 0 评论 -
for语句详解
详解for循环语句1. for语句后面直接跟上了一个分号只会执行括号里面的内容package com.baidu;public class StringTest { public static void main(String[] args) { int i; for(i = 0;i < 10;i++);{ i--; } System.out.println...原创 2020-03-20 14:05:45 · 2195 阅读 · 0 评论 -
continue和break的区别
public class Continue_Break { public static void main(String[] args) { for (int j = 0; j < 10;j++){ if (j == 5){ continue; } System....原创 2020-03-16 19:36:19 · 1361 阅读 · 2 评论 -
Java枚举类详解
枚举类型:在JDK1.5之前,我们定义常量都是:public static fianl…。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法首先定义枚举类package com.baidu;public enum Color { Red,Green,Blue,Yellow;}然后使用package com.baidu;public cl...原创 2020-02-12 19:47:01 · 347 阅读 · 0 评论 -
Map、Set、List集合区别(看完秒懂)
Map、Set、List集合区别`import java.util.HashSet;import java.util.Set;import java.util.HashMap;import java.util.Map;import java.util.ArrayList;public class Demo1 { public static void main(String...原创 2019-09-04 12:52:16 · 261 阅读 · 0 评论 -
用IDEA创建servlet文件并用Tomcat运行
用IDEA创建ServletFile->new->Project->Java Enterprise->Web Application->Next在web->WEB-INF目录下右键new->Directory,分别创建三个文件夹classes、lib、srcFile->Project Structure->Mod...原创 2019-08-29 16:12:12 · 6514 阅读 · 4 评论 -
向服务器端上传文件(Java代码)
给服务器上传文件需要分别为服务器端和客户端创建两个类(我这里创建的是Tcpclient.class、TcpServer.class)这是客户端类Tcpclient.class代码import java.io.InputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.Outpu...原创 2019-08-28 13:28:41 · 1316 阅读 · 0 评论 -
运用BigInteger进行整数之间的高精度的加减乘除运算
运用BigInteger进行整数之间的高精度的加减乘除运算一、acwing791. 高精度加法给定两个正整数,计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤1000001≤整数长度≤100000输入样例:1223输出样例:35import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;impor原创 2021-01-06 14:38:32 · 1126 阅读 · 0 评论 -
Java六大线程池和四大拒绝策略
Java六大线程池和四大拒绝策略学习常见的 6 种线程池,并详细讲解 Java 8 新增的 ForkJoinPool 线程池,6 种常见的线程池如下。FixedThreadPoolCachedThreadPoolScheduledThreadPoolSingleThreadExecutorSingleThreadScheduledExecutorForkJoinPoolFixedThreadPool第一种线程池叫作 FixedThreadPool,它的核心线程数原创 2020-11-18 17:38:36 · 2722 阅读 · 2 评论 -
Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分分层领域模型规约:DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。AO( Application Object):应用对象。原创 2020-11-17 10:53:57 · 968 阅读 · 0 评论 -
Super关键字详解
super关键字的用法如下:super可以用来引用直接父类的实例变量。super可以用来调用直接父类方法。super()可以用于调用直接父类构造函数1.super用于引用直接父类实例变量可以使用super关键字来访问父类的数据成员或字段。 如果父类和子类具有相同的字段,则使用super来指定为父类数据成员或字段。Animal和Dog都有一个共同的属性:color。 如果我们打印color属性,它将默认打印当前类的颜色。 要访问父属性,需要使用super关键字指定class An原创 2020-10-30 08:43:43 · 5884 阅读 · 0 评论 -
HashMap为什么在多线程操作下不安全(jdk1.7和jdk1.8原因不同)
HashMap为什么在多线程操作下不安全一、Map概述我们都知道HashMap是线程不安全的,但是HashMap的使用频率在所有map中确实属于比较高的。因为它可以满足我们大多数的场景了。Map类继承图上面展示了java中Map的继承图,Map是一个接口,我们常用的实现类有HashMap、LinkedHashMap、TreeMap,HashTable。HashMap根据key的hashCode值来保存value,需要注意的是,HashMap不保证遍历的顺序和插入的顺序是一致的。HashMap允许有原创 2020-10-28 21:47:09 · 3192 阅读 · 0 评论 -
synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别
synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别?在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。synchronized 属于独占式悲观锁,是通过 JVM 隐式实现的,synchronized 只允许同一时刻只有一个线原创 2020-10-24 22:28:03 · 310 阅读 · 0 评论 -
Sleep()和wait()方法的区别
Sleep()和wait()方法的区别线程sleep 和wait 的区别:1、这两个方法来自不同的类分别是Thread和Object2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)4、sleep必须捕获异常,wait,notify和notifyAll同样需要捕获异常(之前看到网上很多博客都说wait方法不需要抛出异常原创 2020-10-21 10:28:36 · 11120 阅读 · 1 评论 -
java中静态方法为什么不能调用非静态方法或者变量
静态方法只能调用静态方法(或者变量),非静态方法可以调用静态方法(或者变量)类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问(类名.方法|类名.变量);非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错。...原创 2020-09-20 18:10:12 · 859 阅读 · 0 评论 -
C++和Java的区别
C++和Java的区别一、区别:1、Java编译的程序可以跨平台,c++编译的程序不可以跨平台。这是因为Java 是运行在JVM上的,之所以说它的可移植性强,是因为jvm可以安装到任何的系统。C++在windows编译好了的.exe文件的话放到Linux是不可以直接双击运行的。其原因为Java并不直接编译为机器语言,而是先编译为中间语言。在各个平台上只要装上Java虚拟机,可以对此中间语言解释执行,所以说它是跨平台的。而C++是直接编译成机器语言的,这种语言在不同的机器上有不同的格式,同一个C++程序,原创 2020-09-19 20:29:51 · 1293 阅读 · 0 评论 -
Java序列化API的使用
Java对象序列化Java序列化API为处理对象序列化提供了一个标准机制,具体的Java序列化需要注意以下事项类要实现序列化功能,只需要 实现java.io.Serializable接口即可序列化和反序列化必须保持序列化的ID一致,一般使用private static final long serializableId 定义序列化的ID序列化并不保存静态变量在序列化父类变量时,父类也需要实现Serializable接口使用transient关键字可以防止该变量被序列化,原创 2020-08-17 18:55:09 · 412 阅读 · 0 评论 -
遍历HashMap的四种方式
遍历HashMap的四种方式package com.oracle.containers.map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * @author zhouyanxiang * @create 2020-08-2020/8/17-10:13 */public class HashMapReview { public static void main(Strin原创 2020-08-17 10:33:35 · 184 阅读 · 0 评论