![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
我姓周i
这个作者很懒,什么都没留下…
展开
-
浅谈线程池
一、线程池的概念线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建和启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等待,等其他线程执行完毕,再从队列中取出任务来执行。二、主要特点:线程复用,控制最大并发数,管理线程1)降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2)提高响应速度。当任务到达时,任务可以不需要等到...原创 2020-02-17 17:49:53 · 106 阅读 · 0 评论 -
TCP协议
一、TCP协议格式: 16位源端口号 16位目的端口号 32位序号 32位确认序号 4位首部长度 保留6位 U R...原创 2020-02-15 20:50:54 · 126 阅读 · 0 评论 -
synchronized和 Lock 有什么区别?
1.原始构成:synchronized是关键字,属于JVM层面。monitornter(底层通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象只有在同步块或者方法中才能调wait/notify等方法)Lock是具体类(java.util.concurrent.Locks.Lock)是api层面的锁。2.使用方法sychronized 不需要用户...原创 2020-02-13 21:25:43 · 130 阅读 · 0 评论 -
Java 网络
一、http 响应码 301 和 302 代表的是什么?有什么区别?301、302都是HTTP状态码的编码,都代表着某个URL发生了转移。区别:301 redirect:301代表永久性转移(Premanently Moved)。 302 redirect:302代表暂时性转移(Temporarily Moved)。二、forward 和 redirect 的区别?Forwar...原创 2020-02-07 13:52:16 · 111 阅读 · 0 评论 -
Java 异常
一、throw 和 throws 的区别?throws 是用来声明一个方法可能抛出的所有异常信息,throws 是将异常声明但是不处理,而是将异常往上传,谁调用就交给谁处理,而throw则是指抛出的一个具体异常类型。二、final、finally、finalize有什么区别?final 可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是...原创 2020-02-06 11:16:25 · 71 阅读 · 0 评论 -
Java Web(上)
一、jsp 和 servlet 有什么区别?jsp 经编译后就变成了 Servlet(jsp 的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将jsp的代码编译成JVM能够识别的java类) jsp更擅长表现于页面显示,servlet更擅长于逻辑控制 Servlet中没有内置对象,jsp 中的内置对象都是必须通过 HttpServletRequest对...原创 2020-02-05 13:36:57 · 103 阅读 · 0 评论 -
Java 对象拷贝
一、为什么要使用克隆?想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆,Java语言中克隆针对的是类的实例。二、如何实现对象克隆?实现Cloneable接口并重写Object类中的clone()方法。 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。注意:基于序列化和反序列化实现的克隆不仅仅是深度克隆,更重要的是通过...原创 2020-02-04 11:20:43 · 106 阅读 · 0 评论 -
Java 反射
一、什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Java 反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法二、什么时 java 序列化?什么情况下需要序列化?简单的说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是...原创 2020-02-03 10:32:05 · 72 阅读 · 0 评论 -
Java 多线程(下)
九、创建线程池有哪几种方法?newFixedThreadPool(int nThreads):创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程。 newCachedThreadPool():创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加...原创 2020-02-02 16:56:07 · 219 阅读 · 0 评论 -
Java 多线程(上)
一、并行和并发有什么区别?并行是指两个或者多个事件在同一时刻发生;而并发是指两个或者多个事件在统一时间间隔发生。 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如haddoop分布式集群。所以并发编程的目标是充分利用处理器的每一个核,以达到最高的处理性。二、线程和进程的区别?进程是指程序运行和资源...原创 2020-02-01 15:18:20 · 149 阅读 · 0 评论 -
Java容器
十八、java 容器都有哪些?十九、Collection 和 Collections 有什么区别?java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection 接口在 Java 类库中有很多具体的实现。Collection 接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有 L...原创 2020-01-31 15:46:49 · 199 阅读 · 0 评论 -
Java基础(2)
九、如何将字符串反转?使用StringBuilder 或者 StringBuffer 的 reverse() 方法。 StringBuilder sb = new StringBuilder(); sb.append("abcdef"); System.out.println(sb.reverse()); StringBuff...原创 2020-01-30 15:28:38 · 143 阅读 · 0 评论 -
Java基础(1)
一、JDK和JRE有什么区别?JDK:Java Development Kit 的简称,java开发工具包,提供了java的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译java源码的编译器javac,还包含了许多java程序调试和分析的...原创 2020-01-29 13:29:28 · 104 阅读 · 0 评论 -
多线程(2)
多线程的状态转移图线程的七种状态:NEW,RUNNABLE,RUNNING,WAITING,TIMED_WAITING,TERMINATED,BLOCKED线程安全线程不安全:线程没有按照预期正常工作。线程不安全的原因:共享资源/数据/变量①私有数据不需要考虑线程安全问题,共享数据才是线程不安全的罪魁祸首②线程之间会因为调度的原因,穿插着进行,数据的方法有一定的特殊规则(调度交叉执行...原创 2019-11-08 19:14:04 · 84 阅读 · 0 评论 -
多线程(1)
进程和线程的区别:进程是资源分配的最小单位,进程是CPU调度的最小单位,线程是一个进程中的执行场景,一个进程可以启动 多个线程。多线程的作用:提高应用程序的使用率,让人感觉到多个线程同时并发执行。线程和线程共享堆内存和方法区内存,栈内存是独立的,一个线程一个栈内存。Java程序的运行原理:Java命令会启动JVM,等于启动了一个应用程序,表示启动了一个进程,该进程会自动启动一个“主线程...原创 2019-11-07 17:35:34 · 76 阅读 · 0 评论 -
异常处理
Java的异常机制主要依赖于try,catch,finally,throw和throws五个关键字。try:后紧跟一个花括号括起来的代码块(花括号不可以省略),简称try块,它里面放的是可能引发异常的代码块。catch:后面对应异常类型和代码块,用于表明该catch块用于处理这种类型的代码块。finally:多个catch块后还可以跟一个finally块,finally块用于回收在tr...原创 2019-10-30 14:23:15 · 175 阅读 · 0 评论 -
Set集合
Set集合犹如一个罐子,程序可以将多个对象放入Set集合,Set集合通常不能记住元素的添加顺序。Set集合不允许包含相同的元素,如果尝试把两个相同元素添加进同一个Set集合中,则添加操作失败。HashSet类:HashSet是Set接口的典型实现,大多时候使用Set集合时就是使用该实现类,HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。HashSet的特点...原创 2019-10-23 16:36:58 · 90 阅读 · 0 评论 -
浅谈成员变量和局部变量
在Java语言中,根据定义变量位置的不同,将变量分为成员变量和局部变量。成员变量指的是在类里定义的变量,局部变量指的是在方法里定义的变量,成员变量分为类变量(有static修饰的变量)和实例变量(没有static修饰的变量)。类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类(类变量的作用域与这个类的生存范围相同)而实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例(实例变...原创 2019-10-19 16:46:46 · 165 阅读 · 0 评论 -
String类
String类:1.定义方式:String a="Hello World!";//方式1String s=new String("Hello World!");//方式二方式1中的定义中的Hello World在内存池中定义的,a指向内存池中;方式二中先在内存池中创建了Hello World,然后创建了对象的引用s指向内存池。2.字符串的比较进行数值比较时使用=...原创 2019-10-16 21:16:38 · 117 阅读 · 0 评论 -
抽象类与接口(2)
接口:抽象类与普通类相比最大的特点就是子类实现了父类中的方法,但是继承存在单继承的问题,要避免单继承的问题就必须使用接口接口优先使用(在使用接口和抽象类都可以的时候优先使用接口)定义:接口就是抽象方法和全局常量的集合,在java中使用interface定义。子类使用接口时使用implements实现,一个子类可以实现多个接口(即接口实现多继承),接口的子类必须覆写接口中的所有抽象方...原创 2019-10-16 19:59:47 · 88 阅读 · 0 评论 -
哈希表
哈希表:概念:构造一种存储结构,通过某种函数关系使元素的存储位置与它的关键码之间建立一种一一对应的映射。插入: 根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放搜索元素: 对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若 关键码相等,则搜索成功 哈希方法中使用的转换函数称为哈...原创 2019-10-14 19:18:22 · 76 阅读 · 0 评论 -
数据结构之七大排序
常见的排序算法分为四类:插入排序(直接插入,希尔),选择排序(选择,堆),交换排序(冒泡,快速),归并排序1.直接插入排序:**public static void insertsort(int[] nums){ for(int i=1; i<nums.length;i++){ int key=nums[i]; int j=i-1; for(;j>=0&&nums[...原创 2019-10-12 20:39:09 · 553 阅读 · 0 评论 -
Java数组的定义与使用
数组:引用类型的变量,一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作动态初始化(声明并且开辟数组):数据类型【】数组名称 = new 数据类型【长度】;当数组开辟空间后,可以采用以下操作:①数组的访问通过索引完成,即数组名[索引],注意索引的范围②当数组采用动态初始化开辟空间后,数组中的每个元素都是该数据类型的默认值(0的类型含义)如果数组中的元素没有初始化元素的值就是元素...原创 2019-07-18 18:19:05 · 177 阅读 · 0 评论 -
数据库表的基本操作
SQL分类:DDL数据定义语言,用来维护存储数据的结构。代表指令:CREATE DROP ALTERDML数据操纵语言,用来对数据进行操作。代表指令:insert delete update DML中单独分了一个DQL数据查询语言,代表指令:selectDCL数据控制语言,主要负责权限管理和事物代表指令:grant revoke commit...原创 2019-07-12 09:59:43 · 92 阅读 · 0 评论 -
Linux文件基本操作命令
文件操作命令包括:文件处理命令、文件查看命令、权限管理命令、文件搜索命令文件处理命令:ls 列出参数的属性信息 ls [选项] [参数] ls的参数通常为文件或者目录,其常用的选项列表-l 以详细信息的形式展示出当前目录下的文件-a 显示当前目录下的全部文件(包括隐藏文件)-d 查看目录属性-t 按创建时间顺序列出文件-i 输出文件inode编号-R 列出当前目录下的所有文...原创 2019-07-15 20:03:04 · 177 阅读 · 0 评论 -
自定义类型
一,结构体结构体是一些相同或不同数据元素类型的集合。结构体的声明:struct stu { char name[5]; int age; char sex[2]; char id[20]; };在声明结构体时可以不写结构体名称,称为匿名结构体,结构体在定义时只要是定义了两个结构体,那么这两个结构体是不相同的,结构体在自引用时必须使用指针自引用,否则结构体的大小不明确结构体的定义和初始化:...原创 2019-05-27 17:12:52 · 132 阅读 · 0 评论 -
Java初识
JDK(Java Development Kit)JRE(Java Runtime Environment)Java源代码文件经过编译(Compile)javac -encoding UTF-8 Helloworld.java->Helloworld.class->java Helloworld(在CPU上运行)1.虚拟机CPU(Java虚拟机Java Virtue Machine...原创 2019-07-16 18:59:36 · 152 阅读 · 0 评论 -
Java逻辑控制和方法使用
逻辑的执行过程分为:顺序执行,条件执行,循环执行,子路径1,条件执行:if else 实现对条件的判断,但是如果执行多值判断,可以使用switch语句①if(条件){}②if(条件){}else{}③if(条件){}else if(条件){} else{ }注:条件全部为布尔类型switch(数字|枚举|字符串){case 分支1:语句1;break;case 分支...原创 2019-07-17 16:33:31 · 136 阅读 · 0 评论 -
面向对象编程——类与对象(上)
一,面向对象编程:面向对象的三大特征:1,封装性:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏, 即内部操作对外部而言不可见(保护性)。2,继承性:它可以使用现有类的所有功能,并且在无需重新编写原来的类的情况下对这些功能进行扩展。3,多态性:指一个类实例的相同方法在不同情形下有不同表现形式,多态机制使具有不同内部结构的对象...原创 2019-07-20 19:52:52 · 309 阅读 · 0 评论 -
类与对象(下)
一,包(package) import java.util.Arrays;定义一个包:组织代码 和目录一致(不是准确定义)定义包:①新建目录,目录名称就是包名称(全小写,单词之间用下划线分割)package hello_world;定义目录:p1/p2/p3 定义一个类Hello package p1.p2.p3;②使用包:import 包名称.类名称; import p1.p2.p3...原创 2019-07-22 18:56:48 · 138 阅读 · 0 评论 -
初识数据结构
一,复杂度:粗略衡量算法好坏的刻度尺(工具)两个维度:时间复杂度(快慢)空间复杂度(使用空间情况)时间复杂度:直接用运行时间衡量不现实,测试环境多变,不好控制变量前提:如果指定CPU的情况下,单位时间内运行的基本指令个数是固定的,如果一个算法需要的指令比另一个算法需要的指令个数小,就可以推出算法A的运行时间更快前提:算法计算的快慢和输入数据的规模是有关系的。粗略计算算法的快慢:n:...原创 2019-07-22 19:10:10 · 77 阅读 · 0 评论 -
继承和覆写
面向对象的三大特征:封装(访问限定符),继承,多态继承目的:代码的复用性,继承表达的是一种有关系的类继承的语法:类的定义class Animal { } 父类(Parent class)基类(Base class)超类(Super class)class Birds entends Animal { } 子类(Child class)派生类(Derived class)父类中的属性在子...原创 2019-09-04 21:25:44 · 103 阅读 · 0 评论 -
继承和多态
接口接口出现的目的:体现封装性,分离契约和实现,区分开甲方(提要求)和乙方(干活)。接口可以认为是一份合同(契约)。接口的语法定义:interface 接口名称{ }1.接口的定义允许多继承。2.接口无法实例化对象。3.接口中给出的方法列表默认:①public 访问限定符修饰的。②无法使用static修饰。③是一个抽象方法直接用分号结尾,不用给出方法体。④接口中不能出现属性,如...原创 2019-09-10 12:13:08 · 95 阅读 · 0 评论 -
C语言指针总结
指针:存放内存单元地址的变量,放在指针中的值都被当成地址处理,一个字节给一个对应的地址。指针是用来存放地址的,地址是唯一标示一块地址空间的。 指针的大小在32位平台是4个字节,在64位平台是8个字节。指针的定义:type + * ,指针的类型决定了指针向前或者向后走一步有多大(距离)。指针的类型决定了,对指针解引用的时候有多大的权限 (能操作几个字节)。允许指向数组元素的指针与指向数组最后一...原创 2019-05-12 15:43:04 · 90 阅读 · 0 评论