java基础
文章平均质量分 94
ziyonghong
爱编程有追求的热血青年
展开
-
Java内存溢出和内存泄露
一、为什么要了解内存泄露和内存溢出?1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码编写水平;2、通过了解内存溢出的几种常见情况,可以在出现内存溢出的时候快速的定位问题的位置,缩短解决故障的时间。二、基本概念内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无...转载 2020-03-15 23:19:20 · 239 阅读 · 0 评论 -
java泛型类
泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型。为什么需要泛型?我们知道使用Object可以来表示任意类型,但它向下转型有强转的问题,会导致程序不太安全。在集合类中泛型随处可见,那么试想一下,如果集合类中没有泛型会是怎样的呢?因为Map这些集合对元素的类型没有任何限制,我把Dog对象或Cat对象扔进去集合中,集合也不知道元素类型是什么,只知道它们都是各O...原创 2020-03-07 10:53:13 · 155 阅读 · 0 评论 -
java线程池
在一个应用程序中,需要多次使用线程,也就是需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。所以便于管理线程,线程池就诞生啦。ThreadPoolExecutorThreadPoolExecutor的构造函数:public ThreadPoolExecutor(int corePoolSize, ...原创 2020-02-28 21:01:23 · 109 阅读 · 0 评论 -
java抽象特性之抽象类与接口
抽象类定义:含有抽象方法的类。抽象方法声明格式:abstract void fun();抽象类说明格式:[public] abstract class ClassName { abstract void fun();}接口定接口的形式:[public] interface InterfaceName { }接口也是类的抽象,比抽象类更深...原创 2018-09-09 15:46:54 · 256 阅读 · 0 评论 -
java继承理解
继承是多个类中存在相同属性和方法时,将这些内容放到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。多个类可以称为子类,单独这个类称为父类。(这样就不用多次写重复的代码了)子类可以直接访问父类中的非私有的属性和方法。(不能访问私有属性和方法)通过extends关键字继承。继承的大致可理解为一种包含关系,比如学生是一个类,包含大学生、中学生、小学生。public...原创 2018-03-31 17:54:46 · 1602 阅读 · 5 评论 -
Socket通信原理
在之前的认识TCP/IP协议中了解了OSI七层网络模型和TCP/IP四层模型,和TCP/IP中通信的三次握手、四次挥手,还用Socket写过聊天室的通信,但直到昨天才发现自己对Socket的通信原理的理解是模糊的,所以打算再梳理一下。OSI七层网络模型和TCP/IP四层模型先来看下OSI七层网络模型和TCP/IP四层模型有何区别,其实本质上他们是一样的,都是对一个网络通信过程的分层模型,只...原创 2018-11-03 12:12:58 · 37367 阅读 · 4 评论 -
Volatile关键字解析
初识volatile是在多线程下的懒汉式加双重锁的单例模式,用来防止指令重排,具体可看JAVA单例模式。那时候并没有把它放在脑中,也就一漂而过了,但再次遇到它时,是在一个飞行棋的小游戏中这段代码是点击筛子图片进行摇筛子的操作,但如果没有第一个注释了的那句输出语句是点击了筛子图片也毫无反应的,最后是在变量isClick前用了volatile关键字才可以。为什么会这样呢?volatile到底...原创 2018-10-27 17:31:29 · 197 阅读 · 0 评论 -
再谈反射
一个类正常被执行的流程: .java源文件---->.class字节码文件---->jvm----运行期间系统----->操作系统------>物理硬件 在正常情况下,如果要使用一个类,必须要经过以下几个步骤:(1)使用important导入类所在的包(类:java.lang.Class)(2)通过关键字new进行类对象实例化(构造方法:java.la...原创 2018-10-27 17:19:22 · 125 阅读 · 0 评论 -
JAVA多线程(一)
基本储备:关于进程和线程的概念就不多说了,有兴趣可以看线程与进程之小球游戏。它们的本质区别是:每个进程拥有自己的一套变量,而线程只是共享数据。所以自然的也就可以理解为什么要引入多线程,因为线程间的切换可以减少开销。可以把线程间的切换看作是车在一条路的不同车道之间换道,而进程则看成是每一条不同的路。多进程的意义:提高CPU的使用率。 多线程的意义:提高应用程序的效率。 创建多线程...原创 2018-10-22 01:34:01 · 200 阅读 · 0 评论 -
java 序列化
序列化是什么?java序列化:把java对象转换为字节序列的过程 用到ObjectOutputStream类 java程序-->文件,所以是Out。java反序列化:把字节序列恢复为java对象的过程 ObjectInputStream序列化有什么用呢?序列化又称为持久化,方便以后将该类持久化,将它写入磁盘中。比如我现在拼了个变形金刚的模型,但太大了不方便我整个带回家,...原创 2018-10-21 19:36:37 · 155 阅读 · 0 评论 -
JAVA多线程(二)同步
引入:多线程提高了资源利用效率,但同时它也带来了线程安全的问题。比如在定电影票时,两个人都同时要定5排5座,或者是两个人同时给一张银行卡冲不同的钱,最后银行卡的钱是增加谁冲的呢 (其实就是说当两个线程同时去访问或改变一个资源时,线程是不安全的)?注意上面说的是同时,当然现实中不会出现那样的同时,因为同步方法已解决上面的问题了。正解同步:那什么是同步呢?这里千万不要误解!!!同步是协同步...原创 2018-10-22 18:45:38 · 227 阅读 · 0 评论 -
java异常处理
异常类分为以下: 异常处理方法:1.捕获并处理异常try catch finally 语句说到这里,其实我到异常的处理还是一知半解的,直到我遇到这样的一道题:public abstract class Test { public static void main(String[] args) { System.out.println(bef...原创 2018-07-24 10:41:42 · 133 阅读 · 0 评论