
JAVA
ITBOY_ITBOX
技术人生,管理天涯
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TPC三次握手/四次握手
TCP IP握手原创 2022-10-16 22:38:11 · 369 阅读 · 0 评论 -
TCP/IP四层网络模型
TCP/IP网络模型原创 2022-10-16 22:25:29 · 163 阅读 · 0 评论 -
网络与七层网络模型
网络模型原创 2022-10-16 22:23:25 · 100 阅读 · 0 评论 -
JAVA IO
IO流原创 2022-10-16 20:11:40 · 95 阅读 · 0 评论 -
JAVA反射
反射原创 2022-10-16 19:45:16 · 92 阅读 · 0 评论 -
JAVA集合介绍
集合理论原创 2022-10-16 19:34:12 · 96 阅读 · 0 评论 -
Seata处理过程
分布式事务原创 2022-10-12 08:50:43 · 98 阅读 · 0 评论 -
限流介绍与限流常用算法
在开发高并发系统时,有很多手段来保护系统,如缓存、降级和限流等。缓存的目的是提升系统访问速度和增大系统处理能力,可谓是抗高并发流量的银弹。降级是当服务出问题或者影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者总是解决后再打开的场景。原创 2022-10-07 10:30:58 · 133 阅读 · 0 评论 -
系统设计考虑的问题
在系统设计时,应该多思考墨菲定律。在系统划分时,也要思考康威定律。原创 2022-10-07 09:58:42 · 423 阅读 · 0 评论 -
高可用原则
高可用原则原创 2022-10-07 09:46:50 · 111 阅读 · 0 评论 -
应用级缓存
应用级缓存原创 2022-10-07 09:25:11 · 267 阅读 · 1 评论 -
httpclient的方式发送信息给服务器
public static void sendLogStream(String log){ try{ //不同的日志类型对应不同的URL URL url =new URL("http://logserver/log"); HttpURLConnection conn = (HttpURLConnectio...原创 2019-06-04 17:03:15 · 374 阅读 · 0 评论 -
高并发的异常之ConcurrentModificationException
1 故障现象 java.util.ConcurrentModificationException 2 导致原因 线程不安全 3 解决方法 3.1 new Vector<>() 3.2 Collections.synchronizedList(new ArrayList<>()); 3.3 new CopyOnWrit...原创 2019-06-12 20:15:13 · 677 阅读 · 0 评论 -
JAVA获取登录的IP
protected String getIpAddr() { String ipAddress = null; // ipAddress = this.getRequest().getRemoteAddr(); ipAddress = this.getRequest().getHeader("x-forwarded-for"); if (ipAddress == nul转载 2017-03-01 22:02:26 · 1764 阅读 · 0 评论 -
对数组进行反转
/* 对数组进行反转 */ public static void test2(int[] arry){ for (int i = 0; i < arry.length/2; i++) { int temp=arry[i]; arry[i]=arry[arry.length-1-i]; arry[arry.length-1-i]=temp; }原创 2017-03-01 22:03:03 · 375 阅读 · 0 评论 -
Java进制的转换
int a=29; //转换为二进制 System.out.println(Integer.toBinaryString(a)); //转换为16进制 System.out.println(Integer.toHexString(a)); //转换为8进制 System.out.println(Inte原创 2017-12-30 16:11:58 · 171 阅读 · 0 评论 -
Java自带线程池
newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是: 工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。 如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终...原创 2019-05-28 20:36:29 · 298 阅读 · 0 评论 -
HashMap和HashTable区别
HashMap:线程不安全的,key和value可以是null Hashtable:线程安全的,key和values不可以是null,否则会报空指针异常原创 2019-05-28 20:36:57 · 175 阅读 · 0 评论 -
TreeSet和HashSet区别
HashSet是采用hash表来实现的。其中的元素没有按顺序排列,add()、remove()以及contains()等方法都是复杂度为O(1)的方法。 TreeSet是采用树结构实现(红黑树算法)。元素是按顺序进行排列,但是add()、remove()以及contains()等方法都是复杂度为O(log (n))的方法。它还提供了一些方法来处理排序的set,如first(), last(), ...原创 2019-05-28 20:37:20 · 775 阅读 · 0 评论 -
String buffer和String build区别
1、StringBuffer 与 StringBuilder 中的方法和功能完全是等价的, 2、只是StringBuffer 中的方法大都采用了synchronized关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不安全的。 3、在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全而StringBuffe...原创 2019-05-28 20:38:02 · 2140 阅读 · 1 评论 -
==和Equals区别
== : 如果比较的是基本数据类型,那么比较的是变量的值 == :如果比较的是引用数据类型,那么比较的是地址值(两个对象是否指向同一块内存) equals:如果没重写equals方法比较的是两个对象的地址值。 如果重写了equals方法后我们往往比较的是对象中的属性的内容 equals方法是从Object类中继承的,默认的实现就是使用== ...原创 2019-05-28 20:40:01 · 193 阅读 · 0 评论 -
Final、Finally、Finalize
final:修饰符(关键字)有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词。将变量声明为final,可以保证它们在使用中不被改变,被声明为final 的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。被声明为final 的方法也同样只能使用,不能在子类中被重写。 finally:通常放在try…catch的后面构...原创 2019-05-28 20:40:26 · 140 阅读 · 0 评论 -
给图片加水印
WaterImage.pressImage(path+”static\img\public\waterImage.png”,imageDir+”\”+logoId[j]); //pressImagePath:水印的图片路径 //filePath:要加水印的原文件 public static void pressImage(String pressImagePath, String filePa原创 2017-03-01 22:01:50 · 260 阅读 · 0 评论