自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 JVM: 对象的创建,类加载机制,垃圾回收机制,如何判断对象已死,垃圾回收的方法

对象的创建:当虚拟机遇到一条new指令时,首先去常量池检查是否有这条指令所对应的符号引用,并且要检查这个符号引用所代表的类是否已经类加载了。如果没有,就必须先执行类加载的过程。然后就要为这个对象分配内存,相当于我们在java堆划分一块大小合适的内存给这个对象。但是划分内存的方式,要看java内存是否是规整,如果是,java堆就相当于,用过的内存在一边,没用的在另一边,然后是一个指针进行分...

2020-04-04 12:34:19 227

原创 JVM: jvm各个区域

JVM:通过软件模拟的一个完整的具有硬件系统功能的计算机系统,运行在一个完全隔离的环境中。具有跨平台的功能。jvm和vmware 的区别:vmware模拟的是真实存在的计算机系统。但是jvm模拟的是一个虚拟不存在的系统jvm如何实行跨平台? 原理:编译后字节码文件和平台无关,所以只需要每个平台有对应的虚拟机就可以。jVM ,jdk, jre 三者...

2020-04-04 12:32:19 432

原创 线程池:关闭线程池,饱和策略,四种线程池的创建,线程池的优点

关闭线程池:shutdown: 新传入的任务不再接收,但是目前所有的任务(所有线程中执行的任务+工作队列中的任务)还要执行完毕shutdownNow:1、新传入任务不再接收,2、目前的任务(所有线程中执行的任务)判断是否能够停止,能就直接停止,不能就,就执行完毕再停止。3、工作队列中的任务时直接丢弃线程池:1、为什么有线程池?(线程池的优...

2020-04-04 12:28:55 454

原创 进程初始:冯诺依曼体系,时间片,并发并行的区别,内核态,用户态,上下文

一、冯诺依曼体系结构:由输入设备,输出设备,存储器,cpu组成(cpu包括运算器、控制器)运算器和存储器双向使用控制器单向控制输入设备,存储器,输出设备二、操作系统:(os)1、内核:进程管理、内存管理、文件管理、驱动管理2、其他程序,例如库函数,shell程序等三、进程:对于操作系统来说一个任务就是一个进程进程是操作系统对资源分配的最小...

2020-04-04 12:26:59 395

原创 hashmap的简单理解,底层实现原理,hash冲突以及解决办法

hashmap:hashmap实现了map接口,map接口是对键值对的一个映射,map中不允许出现重复的key,但是key和value都可以为空,而且hashmap线程不安全。因为它是非synbchronized的,都是collection集合的方法可以保证synchronized,所以hashmap也是可以被保证synchronized,多个线程访问它的时候,只能有一个线程更改map。...

2020-04-04 12:24:36 456

原创 单例模式的思想,饿汉模式,懒汉模式,双重校验锁

单例模式:一个类只有一个对象单例模式包括:饿汉模式和懒汉模式懒汉模式: 直到要用到实例时,才会去加载。时间换空间 缺点: 在多线程并发情况下,会产生多个实例化对象,出现线程安全问题转存失败重新上传取消饿汉模式: 一开始就加载好了,每次用到就直接返回用空间换时间转存失败重新上传取消总结:1、单例模式类...

2020-04-04 12:23:16 251 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 405

原创 【java】String类以及其方法

【String类】:java中,专门提供了一个用来操作字符串的类java.lang.String。【创建字符串】:创建字符串对象时,可以通过双引号初始化字符串对象,也可以通过构造方法创建初始化对象,语法格式:String str="abc";String str=new String("abc");(注):一个空字符串并不是说它的值等于null(空值),空字符串和null是两个...

2020-02-05 22:35:41 101

原创 【java】异常,try...catch语句,finally语句,throws关键字,throw关键字,非受查异常和受查异常

java提供了异常处理机制来帮助程序员检查可能出现的错误,java中将异常封装到一个类中,出现错误时,就会抛出异常。【异常】:异常是指程序在允许时产生的错误,例如进行除法运算时,若除数为0时,则运行就会抛出算数异常;若对一个值为null的引用变量进行操作,则会抛出空指针异常;若访问一个大小为2的一维数组中的第3个元素,则会抛出数组下标越界的异常。java中异常也是通过一个对象来表示的,...

2020-02-04 22:56:53 637

原创 【java】接口定义,接口的继承,接口的实现,接口和抽象的共同点,差别

java只支持单重继承,不支持多重继承,即一个类只能有一个父类,但是在实际应用中,又经常需要使用多重继承来解决问题,为了解决该问题,java提供了接口来实现多重继承功能。【接口的简介】:接口是一个抽象类, 接口中所有的方法都没有方法体。抽象类里面可以定义抽象方法,只有连接上接口,就可以实现想要的功能。【接口的定义】:interface是定义接口的关键字,接口的定义和类的定义很相似(...

2020-02-01 21:33:54 975

原创 【java】内部类:成员内部类,局部内部类,静态内部类,匿名内部类

【内部类】:内部类就是在其他类内部定义的子类内部类有4种形式:1、成员内部类2、局部内部类3、静态内部类4、匿名内部类【成员内部类】:成员内部类和成员变量一样,属于类的全局成员。一般格式:public class Sample{ public int id; //成员变量 class Inner{ ...

2020-02-01 16:01:19 228

原创 【java】抽象类概念,抽象方法及其规则和作用,final修饰符,final变量,final类,final方法

【抽象类】:所谓抽象类就是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。在定义抽象类时,要在class前面加上abstract。格式: abstract class 类名{类体}【抽象方法】:在抽象类中创建的、没有实现的、必须要子类重写的方法称为抽象方法,抽象方法只有方法的声明,而没有方法的实现,需要用abstract关键字修饰。...

2020-01-31 17:51:01 460

原创 【java】多态,以及它的实现方法“重载”和“重写”(方法的覆盖),向上转型

【多态】:多态是面向对象的重要部分。在java中通常使用重载和覆盖来实现多态。【方法的重载】:(没有继承关系也可以重载)是指在一个类中,出现多个方法名相同,但是参数个数或者参数类型不同的方法。java在执行具有重载关系的方法时,将根据调用参数的个数和类型来区分具体执行的是哪个方法。重载的方法之间并一定必须有联系。但是为了提高程序的可读性,一般指重载功能相似的方法。在方法重载时,...

2020-01-29 14:24:36 420

原创 【java】继承的概念,使用原则,以及super关键字的使用

【继承的概念】:在面向对象中,继承是继承实体的类,也就是子类是拥有父类的成员。java只支持单重继承,不支持多重继承,即一个类只能有一个父类。【子类的设计】:用关键字extends来指明。[修饰符] class 子类名 extends 父类名修饰符:可选为public,abstract,或者final【继承的使用原则】:1、子类可以继承父类所有的public和pro...

2020-01-26 22:54:16 555

原创 【java】访问权限,public,protected,private,友好变量和方法

【访问权限】:1、【私有变量和私有方法】:private修饰 , 如果一个类中某个成员是私有成员变量,那么在另外一个类中,不能通过类名来操作这个私有成员变量;如果一个类中的某个方法是私有的,那么在另外一个类中,也不能通过类名调用这个私有方法。2、【共有变量和公用方法】:public修饰,如果成员变量或者方法是共有的,那么任何一个类中的对象都可以访问3、【友好变量和友好方法】...

2020-01-21 15:35:17 1306

原创 【java】实例方法和类方法,this关键字,包的创建和引用

【实例方法与类方法】:在类中定义的方法可以分为类方法和实例方法。声明方法时,前面有static修饰的是类方法,也称为静态方法;没有static的实例方法。【实例方法与类方法的区别】:1、声明方法时,前面有static修饰的是类方法,也称为静态方法;没有static的实例方法。2、实例方法需要用对象调用,类方法用类名调用。(注):类方法不能直接操作实例变量,实例方法只能通过对象调...

2020-01-21 15:09:08 715

原创 【java基础】对象的概述,对象的使用,对象回收,参数传值

【对象概述】:对象是一个实实在在存在的实体。(1)对象的声明: 类名 对象名(2)实例化对象:在声明对象时,只是在内存中为其建立一个引用,并置初值为null,表示不指向任何内存空间。声明以后,要为对象分配内存,这个过程也成为实例化对象。用关键字new来实例化,格式:对象名 =new 构造方法名([参数列表])在声明对象的同时,也可以直接实例化对象。例如:A a=new A();...

2020-01-19 14:37:36 161

原创 【Java基础】:类的概念,成员变量和局部变量,成员方法,构造方法与对象

【类】:定义:类是一事物的统称,也就是同一个类型的对象归为一个类。类包括成员变量和成员方法,对象的属性也就是通过成员变量来实现的,成员的行为是通过成员方法类实现的。类把属性和行为封装成了一个整体。类的声明:需要类的名称,类的访问权限,该类与其他类的关系,声明格式:[修饰符] class <类名> [extends 父类名] [implements 接口列表]{}修饰符:...

2020-01-19 00:45:08 1646

原创 【java】面向对象

↵面向对象的三大特征:封装性、继承性、多态性、【封装性】即将对象的属性和方法封装起来变成一个整体。采用封装的原则就是:可以使封装以外的其他不能随意存取或者使用封装体里面的数据,从而有效的避免外部对封装内部数据的影响。同时也实现了错误局部化,大大降低了找错误和改正错误的难度。提高了程序的可维护性。【继承性】面向对象的程序设计中,允许通过继承原有的类的某些特征或全部特性去产生新...

2020-01-15 22:52:11 147

原创 【java语法基础】常量与变量、数据类型,以及数据类型的转换

常量:就是值永远不被改变的量。声明一个常量,需要用final关键字修饰具体格式:final 常量类型 常量标识符 = 常量值; 例如:final int PIE = 18;【注】:在定义一个常量标识符时,所有的字符都要大写,如果常量标识符由多个单词组成,则在各个单词之间用下划线_分开。如:YOUTH_AGE【注】:在位float型常量赋值时,需要在数值后面加上一个“F”或...

2020-01-14 19:16:35 309

原创 【练习题】把字符串中大写转成小写

public class Solution { public static String toLowerCase(String str) { char[] A={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y'...

2020-01-12 22:45:43 265

原创 【JavaWeb】UDP协议和TCP协议,TCP协议机制之ACK,超时重传机制等

传输层:UDP协议 TCP协议 (UDP简单但不可靠,TCP复杂但可靠)端口号:发送数据时,要带上本身进程的端口号,那么发送回来时,通过端口号才知道是哪个进程 (端口号总是和进程相关)有“源端口号”“目的端口号”在TCP/IP协议中,用“源ip”和源端口号” ”目的ip“ "目的端口号" “协议号”这样一个五元组来标识一个通信知名端口号:ssh服务器,22端口 可以远程连...

2020-01-12 16:04:35 665

原创 synchronized锁、volatile关键字,notify和notifyall的区别,等待队列和同步队列

//【synchronized】(同步互斥):重点理解锁的是哪个对象//synchronized静态同步方法:锁定的是当前类对象(this)//synchronized(obj)同步代码块,锁定的是obj对象锁定对象的所以同步的地方,都会同步互斥方法互斥的意思就是,第一方法进入了,第二方法就不能进入,它们是互斥的例如:线程1 s...

2019-12-12 22:31:25 242

原创 多线程关键字,以及多线程的安全问题(原子性、可见性、有序性)

多线程关键字:效率(性能) 、 安全多线程的安全问题: 多线程安全应该是第一位的,需要在保证安全的前提尽可能地提高性能不安全原因:原子性、可见性、代码顺序性【 原子性】:在某个环境下,不可被分割(包括被中断、造成成结果不正确等)操作(简单地说原子性就是指一个不可被中断的操作,在多个线程中一起执行的时候,一个操作一旦开始就不会被其他线程所干扰) CPU指令执行的原子性,是否满足同...

2019-12-12 22:27:18 191

原创 线程方法:sleep,join,yield,interrupt,interrupted线程中断等方法

Runnable表示可运行状态,表示一个线程处于就绪(Ready)态或者运行中(Running)Thread.sleep(long) //运行状态转换为超时等待状态,也是阻塞状态,也就是调用的线程阻塞在这,就不会往下执行了,long指休眠时间,单位毫秒, 过了这个时间,就转为就绪态了thread.join...

2019-12-12 22:23:33 254

原创 线程的创建方法

进程是系统分配资源的最小单位,线程是系统调度的最小单位。一个进程内的线程之间是可以共享资源的。每个进程至少有一个线程存在,即主线程。创建线程:方法一:将一个类声明为Thread的子类。这个子类应该重写run类方法package lesson1;//创建线程 方法一:将一个类声明为Tread的子类。这个子类应该重写run类方法。public class CreatThread {...

2019-12-05 21:44:32 177

原创 java:内部类的分类

内部类的分为: 成员内部类: 形式: public class N{ //外部类 int a=2; //外部类的成员属性 public class M{//成员内部类 public void P...

2019-11-24 22:20:15 112

原创 java:==的使用

public class StringInMemory { public static void main(String[] args) { String a1="hello"; String a2=new String("hello"); System.out.println(a1==a2); //结果为false,a2在堆上 ...

2019-11-24 20:31:04 339

原创 java练习题:将两个数相加,不用+或其他运算符

import java.util.*;public class UnusualAdd { public static int addAB(int A, int B) { // write code here int m=A^B; int n=(A&B)<<1; int sum=m+n; ...

2019-11-24 20:29:32 529

原创 java练习题:一组成绩中,查询有多少个成绩N

//输入//一行输入n,第二行输入n个成绩,空格分开,第三行输入m,输出结果为n中有多少个mimport java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while ...

2019-11-24 20:27:24 192

原创 java练习题:输入两组字符串,在第一组字符串中,删除所包含的所有第二组中的字符

输入两组字符串,在第一组字符串中,删除所包含的所有第二组中的字符例如:A: im student B:isu则输出:m tdentimport java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in=new Scanner(S...

2019-11-10 22:29:11 308

原创 java练习题:一个同学去买苹果,水果店只有6个一袋装和8个一袋装,设同学想买n个苹果,他是否可以刚好买到,若买的,输出苹果袋数,买不到,输出-1

一个同学去买苹果,水果店只有6个一袋装和8个一袋装,设同学想买n个苹果,他是否可以刚好买到,若买的,输出苹果袋数,买不到,输出-1import java.util.Scanner;public class Apple { public static void main(String[] args) { Scanner sc=new Scanner(System.i...

2019-11-10 22:25:13 492

原创 java练习:给定一组字符串,找出其中长度最长的连续的数字字符串

读入一个字符串str,输出字符串str中的连续最长的数字串例如输入:ab123456cde123则输出是:123456思路:首先用toCharArray()方法来把字符串拆成数字,然后定义i遍历数组,如果a[i]是数字,则再定义j+1同时遍历,若a[j]也是数字,则用count记录长度,count+1,一直遍历到a[j]不是数字时,循环结束,最后用max保存最大长度,用substring...

2019-11-09 22:19:15 884

原创 java练习题:左括号和右括号是否匹配

如数一组字符串,看是否符合一下两个条件:1、字符只有(和) 2、看(和)是否匹配如:输入:((1)) 返回false 输入:((()) 返回false 输入:(()) 返回true思路:先用toCharArray方法把字符串拆成一个数组,然后遍历数组的每一个元素,若遇到左括号,就入栈,若遇到右括号,就去栈里找,看有没有左括号与之匹配1、用stack.push()入栈,...

2019-11-09 22:05:36 768

原创 java练习题:计算给定数组中的逆序对个数问题

问题:有一组数,对于其中任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对,请设计一个高效的算法,计算给定数组中的逆序对个数例如:给定数组和它的长度[1,2,3,4,5,6,7,0],8public class tast2 { public static int count(int[] A, int n) { int i=0; ...

2019-11-08 15:27:07 542

原创 java练习题:换汽水问题

问题:某商店规定,三个空汽水瓶可以换一瓶汽水。小王手上有十个空汽水瓶,他最多可以换多少瓶汽水,答案是5瓶,方法如下:先用9个空瓶子换3瓶,喝掉这3瓶之后,剩4个空瓶子,再用3瓶去换一瓶,喝完剩2个空瓶子,这时可以向老板借一瓶,喝掉这瓶满的,剩3个空瓶,换一瓶满的还给老板,如果小王手里有n个空瓶,问最多可以换多少瓶汽水喝?import java.util.Scanner;class Main...

2019-11-08 15:19:17 367

原创 软件测试:水杯的测试用例

水杯的分类:普通水杯,儿童水杯、运动水杯、茶杯、保温杯等功能测试: 1、盛半杯的i水看是否漏水 2、水杯盛到水杯安全线看是否漏水 3、盛满水看是否漏水 4、查看被子容量是否与描述一致 5、拧紧杯盖,摇晃看是否漏水 6、盛放热水,是否烫手性能测试: 1、水杯的保温时间 2、水杯承受的最高温度 3、水杯承受的最低温度 4、水杯的抗摔能力 5、水杯的抗压能...

2019-11-03 14:07:33 825

原创 数据库:图书馆系统的设计

图书管理系统: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 1640

原创 数据库:聚合函数和联合查询的知识整理以及举例

【聚合函数】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 424

原创 数据库:学生、班级、课程表的设计

【表的设计】1、一对一 例如:人和身份证 2、一对多 例如:学生和班级3、多对多 (可以建立中间表,及课程表) 例如:学生和课程//课程create table course( id int primary key auto_increment, name varchar(20));//课程表 (学生为一,课程表为多,所以在课程表里建外键,课程表和课程也一...

2019-11-01 23:20:59 8850

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除