随笔分类 -  Java

摘要:1Apache MINA 2Grizzly 3Netty 4NIO Framework 5QuickServer 6xSocket 7IOServer 8XNIO 1、Apache MINA 项目主页:http://mina.apache.org/ 为开发高性能和高可用性的网络应用程序提供了非常便利 阅读全文
posted @ 2022-03-18 23:20 Mr.Aaron 阅读(122) 评论(0) 推荐(0)
摘要:Netty IO模型 public class IOServer { /** * Server服务端首先创建ServerSocket监听8000端口,然后创建线程不断调用阻塞方法 serversocket.accept()获取新的连接,当获取到新的连接给每条连接创建新的线程负责从该连接中读取数据,然 阅读全文
posted @ 2020-11-12 11:07 Mr.Aaron 阅读(323) 评论(0) 推荐(0)
摘要:1.1 泛形的作用 (1)JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免就会引发程序的一些安全性问题。例如: ArrayList list = new ArrayList(); list.add("abc"); Integer num = (In 阅读全文
posted @ 2020-05-08 11:48 Mr.Aaron 阅读(308) 评论(0) 推荐(0)
摘要:Arthas是阿里巴巴开源出来的一个针对java的工具,主要是针对java的问题进行诊断。 官网地址(下载安装请看这里):https://alibaba.github.io/arthas/index.html 这个工具可以协助完成下面这些事情: 这个类是从哪个jar包加载而来的? 为什么会报各种类相 阅读全文
posted @ 2020-05-05 11:45 Mr.Aaron 阅读(4240) 评论(0) 推荐(0)
摘要:Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。 Socket编程 一、网络基础知识 1、两台计算机间进行通讯需要以下三个条件: IP地址、协议、端口号 2、TCP/IP协议: 是目前世界上应用最为广泛的 阅读全文
posted @ 2019-12-31 10:40 Mr.Aaron 阅读(571) 评论(0) 推荐(0)
摘要:是否保证线程安全? ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全。 底层数据结构区别? Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构。 插入和删除是否受元素位置的影响? ArrayList 采用数组存储, 阅读全文
posted @ 2019-09-26 10:45 Mr.Aaron 阅读(290) 评论(0) 推荐(0)
摘要:枚举单例(Enum Singleton)是实现单例模式的一种方式,尽管单例模式在java中已经存在很长时间了,但是枚举这个特性是在Java5才出现的。 1. 枚举写法简单 写法简单这是它最大的优点,对比下面代码分别为传统的用double checked locking实现的单例和枚举单例。 枚举实现 阅读全文
posted @ 2019-08-18 17:36 Mr.Aaron 阅读(773) 评论(0) 推荐(0)
摘要:Collections Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list)//反转 void shuffle(List list)//随机排序 voi 阅读全文
posted @ 2019-07-05 14:29 Mr.Aaron 阅读(229) 评论(0) 推荐(0)
摘要:ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中 阅读全文
posted @ 2019-06-18 16:32 Mr.Aaron 阅读(246) 评论(0) 推荐(0)
摘要:原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关 阅读全文
posted @ 2019-06-18 16:14 Mr.Aaron 阅读(157) 评论(0) 推荐(0)
摘要:方法一:synchronized, wait, notify 1.1 资源 1.2 消费者 1.3 生产者 1.4 测试代码 方法二:lock, condition, await, signal 2.1 资源 2.2 消费者 2.3 生产者 2.4 测试代码 阅读全文
posted @ 2019-06-18 11:12 Mr.Aaron 阅读(265) 评论(0) 推荐(0)
摘要:在使用Lock之前,我们都使用Object 的wait和notify实现同步的。举例来说,一个producer和consumer,consumer发现没有东西了,等待,produer生成东西了,唤醒。 线程consumer 线程producer synchronize(obj){ obj.wait( 阅读全文
posted @ 2019-06-18 10:10 Mr.Aaron 阅读(1298) 评论(0) 推荐(0)
摘要:一、任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录、更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程。 二、建立表和相应的存储过程 create table student (sno int ,snam 阅读全文
posted @ 2019-04-13 08:34 Mr.Aaron 阅读(1469) 评论(0) 推荐(0)
摘要:集合的由来及集合继承体系图 集合的由来 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义 java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 数组和集合的区别 区别1 : 数组既可以存储基本数据类型,又可以存储引用数据类型,基 阅读全文
posted @ 2018-12-03 20:38 Mr.Aaron 阅读(294) 评论(0) 推荐(0)
摘要:线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。 使用线程可以把占据 阅读全文
posted @ 2018-11-28 21:24 Mr.Aaron 阅读(952) 评论(0) 推荐(0)
摘要:1异常相关概述 1.1 什么是异常 异常就是Java程序在运行过程中出现的错误。 前面接触过的空指针,数组越界,类型转换错误异常等 1.2 Throwable Throwable 类是 Java 语言中所有错误或异常的超类。 只有当对象是此类(或其子类之一)的实例时,才能通过 JVM 或者 thro 阅读全文
posted @ 2018-10-27 15:35 Mr.Aaron 阅读(746) 评论(0) 推荐(0)
摘要:一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 阅读全文
posted @ 2018-10-27 08:52 Mr.Aaron 阅读(439) 评论(0) 推荐(0)
摘要:在Myeclipse中测试restful接口返回数据的时候,直接采用main方法执行程序,但是几秒钟后程序报错,返回字符串结果正常,只是数据量有点大。 先查看源代码Arrays.java:2367 创建char数组对象时候报错,错误信息堆空间溢出 华丽的分割线,下面堆和栈的解释还是比较清楚的 ◆寄存 阅读全文
posted @ 2017-11-02 09:09 Mr.Aaron 阅读(429) 评论(0) 推荐(0)
摘要:1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达 阅读全文
posted @ 2016-12-23 10:18 Mr.Aaron 阅读(136596) 评论(7) 推荐(15)