
笔记整理
Wweakness
从来无所求,所得皆惊喜
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM: 对象的创建,类加载机制,垃圾回收机制,如何判断对象已死,垃圾回收的方法
对象的创建:当虚拟机遇到一条new指令时,首先去常量池检查是否有这条指令所对应的符号引用,并且要检查这个符号引用所代表的类是否已经类加载了。如果没有,就必须先执行类加载的过程。然后就要为这个对象分配内存,相当于我们在java堆划分一块大小合适的内存给这个对象。但是划分内存的方式,要看java内存是否是规整,如果是,java堆就相当于,用过的内存在一边,没用的在另一边,然后是一个指针进行分...原创 2020-04-04 12:34:19 · 287 阅读 · 0 评论 -
JVM: jvm各个区域
JVM:通过软件模拟的一个完整的具有硬件系统功能的计算机系统,运行在一个完全隔离的环境中。具有跨平台的功能。jvm和vmware 的区别:vmware模拟的是真实存在的计算机系统。但是jvm模拟的是一个虚拟不存在的系统jvm如何实行跨平台? 原理:编译后字节码文件和平台无关,所以只需要每个平台有对应的虚拟机就可以。jVM ,jdk, jre 三者...原创 2020-04-04 12:32:19 · 497 阅读 · 0 评论 -
线程池:关闭线程池,饱和策略,四种线程池的创建,线程池的优点
关闭线程池:shutdown: 新传入的任务不再接收,但是目前所有的任务(所有线程中执行的任务+工作队列中的任务)还要执行完毕shutdownNow:1、新传入任务不再接收,2、目前的任务(所有线程中执行的任务)判断是否能够停止,能就直接停止,不能就,就执行完毕再停止。3、工作队列中的任务时直接丢弃线程池:1、为什么有线程池?(线程池的优...原创 2020-04-04 12:28:55 · 527 阅读 · 0 评论 -
进程初始:冯诺依曼体系,时间片,并发并行的区别,内核态,用户态,上下文
一、冯诺依曼体系结构:由输入设备,输出设备,存储器,cpu组成(cpu包括运算器、控制器)运算器和存储器双向使用控制器单向控制输入设备,存储器,输出设备二、操作系统:(os)1、内核:进程管理、内存管理、文件管理、驱动管理2、其他程序,例如库函数,shell程序等三、进程:对于操作系统来说一个任务就是一个进程进程是操作系统对资源分配的最小...原创 2020-04-04 12:26:59 · 480 阅读 · 0 评论 -
hashmap的简单理解,底层实现原理,hash冲突以及解决办法
hashmap:hashmap实现了map接口,map接口是对键值对的一个映射,map中不允许出现重复的key,但是key和value都可以为空,而且hashmap线程不安全。因为它是非synbchronized的,都是collection集合的方法可以保证synchronized,所以hashmap也是可以被保证synchronized,多个线程访问它的时候,只能有一个线程更改map。...原创 2020-04-04 12:24:36 · 524 阅读 · 0 评论 -
单例模式的思想,饿汉模式,懒汉模式,双重校验锁
单例模式:一个类只有一个对象单例模式包括:饿汉模式和懒汉模式懒汉模式: 直到要用到实例时,才会去加载。时间换空间 缺点: 在多线程并发情况下,会产生多个实例化对象,出现线程安全问题转存失败重新上传取消饿汉模式: 一开始就加载好了,每次用到就直接返回用空间换时间转存失败重新上传取消总结:1、单例模式类...原创 2020-04-04 12:23:16 · 315 阅读 · 1 评论 -
【java】集合,List,Set,Map和Collection接口,ArrayList类,LinkedList类,HashSet类,TreeSet类
【集合中主要接口的概述】:在java.until包中提供了一些集合,常用的有List,Set和Map,其中List和Set实现了Collection接口,这些集合又被称为容器,它们与数组不同,数组的长度是固定的。但是集合的长度是可变的,数组是用来存放基本数据类型的数据,集合用来存放类对象的引用。【List,Set,Map和Collection接口的主要特征如下】:1、Collectio...原创 2020-02-06 18:18:27 · 475 阅读 · 0 评论 -
【java】String类以及其方法
【String类】:java中,专门提供了一个用来操作字符串的类java.lang.String。【创建字符串】:创建字符串对象时,可以通过双引号初始化字符串对象,也可以通过构造方法创建初始化对象,语法格式:String str="abc";String str=new String("abc");(注):一个空字符串并不是说它的值等于null(空值),空字符串和null是两个...原创 2020-02-05 22:35:41 · 145 阅读 · 0 评论 -
【java】异常,try...catch语句,finally语句,throws关键字,throw关键字,非受查异常和受查异常
java提供了异常处理机制来帮助程序员检查可能出现的错误,java中将异常封装到一个类中,出现错误时,就会抛出异常。【异常】:异常是指程序在允许时产生的错误,例如进行除法运算时,若除数为0时,则运行就会抛出算数异常;若对一个值为null的引用变量进行操作,则会抛出空指针异常;若访问一个大小为2的一维数组中的第3个元素,则会抛出数组下标越界的异常。java中异常也是通过一个对象来表示的,...原创 2020-02-04 22:56:53 · 709 阅读 · 0 评论 -
【java】接口定义,接口的继承,接口的实现,接口和抽象的共同点,差别
java只支持单重继承,不支持多重继承,即一个类只能有一个父类,但是在实际应用中,又经常需要使用多重继承来解决问题,为了解决该问题,java提供了接口来实现多重继承功能。【接口的简介】:接口是一个抽象类, 接口中所有的方法都没有方法体。抽象类里面可以定义抽象方法,只有连接上接口,就可以实现想要的功能。【接口的定义】:interface是定义接口的关键字,接口的定义和类的定义很相似(...原创 2020-02-01 21:33:54 · 1113 阅读 · 0 评论 -
【java】内部类:成员内部类,局部内部类,静态内部类,匿名内部类
【内部类】:内部类就是在其他类内部定义的子类内部类有4种形式:1、成员内部类2、局部内部类3、静态内部类4、匿名内部类【成员内部类】:成员内部类和成员变量一样,属于类的全局成员。一般格式:public class Sample{ public int id; //成员变量 class Inner{ ...原创 2020-02-01 16:01:19 · 276 阅读 · 0 评论 -
【java】抽象类概念,抽象方法及其规则和作用,final修饰符,final变量,final类,final方法
【抽象类】:所谓抽象类就是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。在定义抽象类时,要在class前面加上abstract。格式: abstract class 类名{类体}【抽象方法】:在抽象类中创建的、没有实现的、必须要子类重写的方法称为抽象方法,抽象方法只有方法的声明,而没有方法的实现,需要用abstract关键字修饰。...原创 2020-01-31 17:51:01 · 556 阅读 · 0 评论 -
【java】多态,以及它的实现方法“重载”和“重写”(方法的覆盖),向上转型
【多态】:多态是面向对象的重要部分。在java中通常使用重载和覆盖来实现多态。【方法的重载】:(没有继承关系也可以重载)是指在一个类中,出现多个方法名相同,但是参数个数或者参数类型不同的方法。java在执行具有重载关系的方法时,将根据调用参数的个数和类型来区分具体执行的是哪个方法。重载的方法之间并一定必须有联系。但是为了提高程序的可读性,一般指重载功能相似的方法。在方法重载时,...原创 2020-01-29 14:24:36 · 626 阅读 · 0 评论 -
【java】继承的概念,使用原则,以及super关键字的使用
【继承的概念】:在面向对象中,继承是继承实体的类,也就是子类是拥有父类的成员。java只支持单重继承,不支持多重继承,即一个类只能有一个父类。【子类的设计】:用关键字extends来指明。[修饰符] class 子类名 extends 父类名修饰符:可选为public,abstract,或者final【继承的使用原则】:1、子类可以继承父类所有的public和pro...原创 2020-01-26 22:54:16 · 697 阅读 · 0 评论 -
【java】访问权限,public,protected,private,友好变量和方法
【访问权限】:1、【私有变量和私有方法】:private修饰 , 如果一个类中某个成员是私有成员变量,那么在另外一个类中,不能通过类名来操作这个私有成员变量;如果一个类中的某个方法是私有的,那么在另外一个类中,也不能通过类名调用这个私有方法。2、【共有变量和公用方法】:public修饰,如果成员变量或者方法是共有的,那么任何一个类中的对象都可以访问3、【友好变量和友好方法】...原创 2020-01-21 15:35:17 · 1504 阅读 · 0 评论 -
【java】实例方法和类方法,this关键字,包的创建和引用
【实例方法与类方法】:在类中定义的方法可以分为类方法和实例方法。声明方法时,前面有static修饰的是类方法,也称为静态方法;没有static的实例方法。【实例方法与类方法的区别】:1、声明方法时,前面有static修饰的是类方法,也称为静态方法;没有static的实例方法。2、实例方法需要用对象调用,类方法用类名调用。(注):类方法不能直接操作实例变量,实例方法只能通过对象调...原创 2020-01-21 15:09:08 · 785 阅读 · 0 评论 -
【java基础】对象的概述,对象的使用,对象回收,参数传值
【对象概述】:对象是一个实实在在存在的实体。(1)对象的声明: 类名 对象名(2)实例化对象:在声明对象时,只是在内存中为其建立一个引用,并置初值为null,表示不指向任何内存空间。声明以后,要为对象分配内存,这个过程也成为实例化对象。用关键字new来实例化,格式:对象名 =new 构造方法名([参数列表])在声明对象的同时,也可以直接实例化对象。例如:A a=new A();...原创 2020-01-19 14:37:36 · 214 阅读 · 0 评论 -
【Java基础】:类的概念,成员变量和局部变量,成员方法,构造方法与对象
【类】:定义:类是一事物的统称,也就是同一个类型的对象归为一个类。类包括成员变量和成员方法,对象的属性也就是通过成员变量来实现的,成员的行为是通过成员方法类实现的。类把属性和行为封装成了一个整体。类的声明:需要类的名称,类的访问权限,该类与其他类的关系,声明格式:[修饰符] class <类名> [extends 父类名] [implements 接口列表]{}修饰符:...原创 2020-01-19 00:45:08 · 1874 阅读 · 0 评论 -
【java】面向对象
↵面向对象的三大特征:封装性、继承性、多态性、【封装性】即将对象的属性和方法封装起来变成一个整体。采用封装的原则就是:可以使封装以外的其他不能随意存取或者使用封装体里面的数据,从而有效的避免外部对封装内部数据的影响。同时也实现了错误局部化,大大降低了找错误和改正错误的难度。提高了程序的可维护性。【继承性】面向对象的程序设计中,允许通过继承原有的类的某些特征或全部特性去产生新...原创 2020-01-15 22:52:11 · 208 阅读 · 0 评论 -
【java语法基础】常量与变量、数据类型,以及数据类型的转换
常量:就是值永远不被改变的量。声明一个常量,需要用final关键字修饰具体格式:final 常量类型 常量标识符 = 常量值; 例如:final int PIE = 18;【注】:在定义一个常量标识符时,所有的字符都要大写,如果常量标识符由多个单词组成,则在各个单词之间用下划线_分开。如:YOUTH_AGE【注】:在位float型常量赋值时,需要在数值后面加上一个“F”或...原创 2020-01-14 19:16:35 · 379 阅读 · 0 评论 -
【JavaWeb】UDP协议和TCP协议,TCP协议机制之ACK,超时重传机制等
传输层:UDP协议 TCP协议 (UDP简单但不可靠,TCP复杂但可靠)端口号:发送数据时,要带上本身进程的端口号,那么发送回来时,通过端口号才知道是哪个进程 (端口号总是和进程相关)有“源端口号”“目的端口号”在TCP/IP协议中,用“源ip”和源端口号” ”目的ip“ "目的端口号" “协议号”这样一个五元组来标识一个通信知名端口号:ssh服务器,22端口 可以远程连...原创 2020-01-12 16:04:35 · 759 阅读 · 0 评论 -
synchronized锁、volatile关键字,notify和notifyall的区别,等待队列和同步队列
//【synchronized】(同步互斥):重点理解锁的是哪个对象//synchronized静态同步方法:锁定的是当前类对象(this)//synchronized(obj)同步代码块,锁定的是obj对象锁定对象的所以同步的地方,都会同步互斥方法互斥的意思就是,第一方法进入了,第二方法就不能进入,它们是互斥的例如:线程1 s...原创 2019-12-12 22:31:25 · 303 阅读 · 0 评论 -
多线程关键字,以及多线程的安全问题(原子性、可见性、有序性)
多线程关键字:效率(性能) 、 安全多线程的安全问题: 多线程安全应该是第一位的,需要在保证安全的前提尽可能地提高性能不安全原因:原子性、可见性、代码顺序性【 原子性】:在某个环境下,不可被分割(包括被中断、造成成结果不正确等)操作(简单地说原子性就是指一个不可被中断的操作,在多个线程中一起执行的时候,一个操作一旦开始就不会被其他线程所干扰) CPU指令执行的原子性,是否满足同...原创 2019-12-12 22:27:18 · 261 阅读 · 0 评论 -
线程方法:sleep,join,yield,interrupt,interrupted线程中断等方法
Runnable表示可运行状态,表示一个线程处于就绪(Ready)态或者运行中(Running)Thread.sleep(long) //运行状态转换为超时等待状态,也是阻塞状态,也就是调用的线程阻塞在这,就不会往下执行了,long指休眠时间,单位毫秒, 过了这个时间,就转为就绪态了thread.join...原创 2019-12-12 22:23:33 · 329 阅读 · 0 评论 -
线程的创建方法
进程是系统分配资源的最小单位,线程是系统调度的最小单位。一个进程内的线程之间是可以共享资源的。每个进程至少有一个线程存在,即主线程。创建线程:方法一:将一个类声明为Thread的子类。这个子类应该重写run类方法package lesson1;//创建线程 方法一:将一个类声明为Tread的子类。这个子类应该重写run类方法。public class CreatThread {...原创 2019-12-05 21:44:32 · 241 阅读 · 0 评论 -
数据库:图书馆系统的设计
图书管理系统:1、图书表create table book( id int primary key, name varchar(20), author vachar(20), price decimal(11,2), category_id int, foreign key(caregory_id) references ...原创 2019-11-01 23:24:45 · 1738 阅读 · 0 评论 -
数据库:聚合函数和联合查询的知识整理以及举例
【聚合函数】COUT 数据的数量SUM 数据求和AVG 求平均数MIN 最小数MAX 最大数create table emp( id int primary key auto_increment, name varchar(20) not null, role varchar(20) not null, salary ...原创 2019-11-01 23:23:04 · 484 阅读 · 0 评论 -
数据库:学生、班级、课程表的设计
【表的设计】1、一对一 例如:人和身份证 2、一对多 例如:学生和班级3、多对多 (可以建立中间表,及课程表) 例如:学生和课程//课程create table course( id int primary key auto_increment, name varchar(20));//课程表 (学生为一,课程表为多,所以在课程表里建外键,课程表和课程也一...原创 2019-11-01 23:20:59 · 9443 阅读 · 0 评论 -
数据库的约束
数据库约束约束类型:NOT NULL:不为空UNIQUE:唯一,不能重复DEFAULT:默认值PRIMARY KEY:主键,既要满足:NOT NULL和UNIQUE(既不为空又要唯一)FOREIGN KEY:外键CHECKNULL约束:创建表时,可以制定某列不能为空:create table student( -> sn int not null, ...原创 2019-11-01 23:19:15 · 228 阅读 · 0 评论 -
数据库:新增、修改、分页查询、条件查询、去重等知识整理
create table student(sn int, name varchar(20),account decimal(11,2),sgroup int);1、新增:(插入了一行数据) (insert into...values..)insert into student(sn,name,account,sgroup) values...原创 2019-11-01 23:17:05 · 259 阅读 · 0 评论 -
数据库基础操作
1、数据库操作 创建:creat database xxx; create database test character set utf8mb4; 使用:use xxx; 删除:drop database xxx; 显示:show databases;2、数据类型 数值型: 1、整型 bit :设置boolean时,设置bit,默认长度1,值为0和...原创 2019-11-01 23:15:06 · 142 阅读 · 0 评论 -
java笔记:输出方法
输出方法:print println printfprint:输出后不换行,调用print()方法必须带且只能带有一个基本数据类型的参数,它输出数据后不换行。println:可以不带参数,如果不带参数,则输出一个换行,如果带参数,只能带一个基本数据类型的参数,输出参数的值并换行 如果用print和println一次输出多个数据,则应将多个数据变成一个数据后再调用这两个方法输...原创 2019-08-19 20:58:53 · 233 阅读 · 0 评论 -
java:二分查找和冒泡排序的方法归纳
//二分查找1、前提:数组已经有序public static int binarySearch(int[] array,int key);2、在有序数组中查找key,如果找到,返回所在下标 如果没找到返回-1//冒泡排序 public static void swap(int array[],int i,int j){ int t=array[i]; ...原创 2019-07-21 14:24:04 · 167 阅读 · 0 评论 -
java:关于调试的笔记整理
调试(Debug) 了解 jdb 1 编译的时候 , 需要多加一个选项 -gjavav -encoding UTF-8 -g Interview.java 2 jdb Interview1、设置断点:stop at 类名:行数 stop in 类名:方法名2、打印调用栈 where3、打印变量 locals pri...原创 2019-07-08 12:55:37 · 171 阅读 · 0 评论 -
java:链表的头插,尾插,头删,尾删的笔记整理
//增 删 查 改//将element插入到index所在下标处//要求 对inedex做合法性校验public void erase(int index){...}}链表 1、逻辑上有前后顺序 2、不保证逻辑前后顺序的元素挨着1、遍历链表 for(Node cur=head;cur!=null;cur=cur.next){}或Node cur=head;wh...原创 2019-07-08 12:52:56 · 264 阅读 · 0 评论 -
java:类和对象
类和对象语法顶级访问限定符 class 类名称{1、属性 访问限定符 属性数据类型 属性名称2、构造方法 访问限定符 方法名和类名相同(参数列表){…}3、方法 访问限定符 返回值 方法名称(参数列表){…}4、静态属性 访问限定符 static 属性数据类型 属性名称;5、静态方法 ...原创 2019-05-26 19:27:07 · 139 阅读 · 0 评论 -
c语言笔记整理(三)之自增、字符串等
++相当于让变量自增1前置++和后置++的区别:前置++,返回值是自增之后的值;后肢++,返回值是自增之前的值;前置等价代码:num+=1;return num;后置等价代码:int tmp=num;num+=1;return tmp;2、for(k=0;k=0;++k)循环0次,因为k=0是赋值操作,k=0假,不循环for(k=0;k==0;++k) 循...原创 2019-05-17 11:12:50 · 923 阅读 · 0 评论 -
C语言笔记(二)
1、指针*p 间接访问,解引用运算注:%p打印指针的十六进制无符号整数%s打印一个字符串2、30>age>18 是不合法的应该改为: age>18 && age<303、0表示假 ,非0表示真4、switch 语句(后面必须写整型表达式)case 入口(后面必须是整型常量表达式) break 出口 default 其他case ...原创 2019-05-16 13:51:46 · 111 阅读 · 0 评论 -
java基础知识整理
类(class) 方法(method)四种变量:1、属性(field) 实例变量(instance variable)2、静态属性(static field) 类变量(class variable)3、局部变量(local variable)4、参数(parameter)如何定义一个变量数据类型 变量名(identifier)1.直接加分号; 表示定义了变量,并且没有初始化...原创 2019-05-11 19:52:37 · 217 阅读 · 0 评论 -
java笔记 之 方法、结构体
表达式(Expression)注:在java中回车不用 /n 要用 %n打印a=100; System.out.println( )100>50add(1,2);语句:(Statement)以分号结束语句块(...原创 2019-05-15 23:28:55 · 487 阅读 · 0 评论