- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 java_learing29 死锁
死锁 public class ThreadTst { public static void main(String args[]){ StringBuffer s1= new StringBuffer(); StringBuffer s2= new StringBuffer(); new Thread(new Runnable(){ @Override public void run() { //super..
2020-11-07 20:24:43
165
原创 JAVA_learning 28多线程
高级部分多线程JAVA常用类枚举类,注解Java集合泛型I/O流网络编程Java反射机制新特性多线程区别程序,进程,线程1. 程序——一段静态的代码2. 进程——正在运行的一个程序,因此它会有开始,结束,生命周期这样的定义,所以说进程是一个动态的过程。3. 线程——可视为一个程序内部的一条执行路径,一个进程中,可能同时运行多个线程每个进程都拥有自己独立的:栈,程序计数器多个线程,共享同一个进程中的结构:方法区,堆——这个交互的过程称为通讯,也是由于通讯的存在,多个线程
2020-11-05 15:53:17
193
原创 数据结构_07栈与队列
栈,stackFILO只能在一端进行插入和删除线性表括号匹配问题给定一个字符串,里面可能包含“()”小括号和其他字符,编写程序检查该字符串中的小括号是否成对出现逆波兰表达式1. 中缀表达式:1+(2-3),2-232. 后缀表达式:ab+后缀表达式总是放在和他相关的操作数之后,如a+(b-c) → abc-+a+(b-c)d → abc-d+a(b-c)+d → abc-*d+队列,queue符号表...
2020-11-05 10:42:59
108
原创 数据结构_03队列与循环队列
队列队列queue,是一个有序列表,可以用数组和链表实现先进先出,如银行业务办理用数组模拟队列队尾:rear——rear会随着数据的输入而不断增加队首:front——front会随着数据的输出而不断增加队列的长度:rear - front + 1最大容量:maxsize注:这张图有问题,而且,front,rear不一定是从-1开始数据添加1. 添加之前需判断队列的容量——如何判断——rear表示的是队尾元素的序号,因为容量为 rear+1,只需判断 rear+1与 ma
2020-11-05 10:41:34
157
原创 数据结构_06线性表
线性表前驱元素与后继元素头节点与尾节点除了头节点与尾节点,其他元素有且只有一个前驱和后继元素顺序表顺序表的容量可变1. 在插入元素时不管是直接插入(无参数,直接在尾部插入),还是定点插入(在指定位置处插入),都需要先判断容量是否已满,若是,则调用另外的扩容函数(其实就是新建一个2倍容量的顺序表,指向原来的表,并将数值复制到新表中)时间复杂度各个方法的复杂度顺序表底层是由数组实现,而数组的长度是固定的,在操作中涉及到扩容时,会导致操作某些需要扩容的元素时,时间复杂度会剧增,这样就会导致
2020-11-05 09:34:23
155
原创 数据结构_05简单排序
简单排序comparable接口介绍某个类实现comparable接口后,我们就可以直接对这个类进行比较了冒泡排序1. 注意所说的第一次冒泡,指的是第一轮结束后的结果,也就是最大值被放在最后,而不是第一轮中交换一次后的结果选择排序插入排序高级排序希尔排序——选定一个增长量,h ,按照增长量对数据进行分组,对分好组的每一组数据使用插入排序,h=h/2,多次循环归并排序1. 递归2. 时间复杂度为(n*log2(n))——log2(n)是分治,合并的次数3. 辅
2020-11-04 15:14:43
132
原创 数据结构_04空间复杂度
如果说时间复杂度是对算法运行次数的表征,那么空间复杂度则是算法运行时所占内存大小的度量java中常见内存占用基本数据类型内存占用字节数byte1short2char2int4long8float4double8boolean1计算机访问内存的方式都是一次一个字节,一个字节又是8位一个引用需要8个字节表示,java中的引用就是变量,例如Date a=new Date();a这个变量就需要8个字节来表示.
2020-11-04 09:34:52
187
原创 数据结构_02稀疏数组
稀疏数组引入:在棋盘游戏中经常会遇到,保留此局或者复盘,此时我们一般会使用一个二维数组将棋盘的信息存储起来,但是针对那些二维数组中含很多0(无意义)的情况就需要使用,稀疏数组压缩当一个数组大部分元素为0,或同一个值时,就可使用稀疏数组问题:这种真的有用吗,以上图为例,77=49 降到 38=24,但如果有效值再多一倍那它的压缩就完全不存在了,这时有效值也只占16/49,大概1/3,这里就涉及到有效值占的比例了二维数组转sparseArray思路:1. 遍历二维数组,找到有效数据的个数sum2
2020-11-03 16:33:47
60
原创 数据结构_01线性与非线性结构
线性结构:数据元素之间一对一,例如,a[0]=30,唯一对应两种存储方式,顺序存储与链式存储顺序存储——顺序表,存储元素的地址是连续的,数组链式存储——链表,存储元素的地址不一定连续,一个元素又称为一个节点这样的好处是可以充分利用碎片内存常见的线性结构**:数组,队列,链表,栈**非线性结构包括:二维数组,多维数组,广义表,树结构,图结构...
2020-11-03 14:47:02
274
原创 多益网络-面试准备
http与https的区别1. http(text transport ) 超文本传输协议——基于传输层的tcp,https 安全套接的http(ssl secure scoket layer),需要用到证书2. url上的区别: http://,https://3. 安全,http明文传输,不安全,https加密传输,安全,C向S端发送https()请求,S端返回包含公钥的证书,C端随机生成一个对称密钥,并使用公钥对密钥加密,再将加密后的对称密钥传输给S端,4. 端口号不同,http的端口号是:.
2020-11-03 09:00:19
2151
1
原创 10_22笔试题
1.以下关于进程、线程、协程的的说法正确的是?()[不定项选择题]A. 进程是操作系统能够进行运算调度的最小单位B. 线程是堆共享,栈私有C. 线程是堆私有,栈共享D. 现代操作系统中,协程是资源管理的最小单元E. 一般而言,执行开销进程 > 线程 > 协程答案:BE解析:1. 对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。2. 线程的五种状态:初始化,可运行,运行中,阻塞,销毁3. 进程还是线程,都是由操作系统所管理的4. 协程是一种比线程更加轻量级的
2020-10-23 21:03:44
1272
原创 MySql_3_DQL条件查询+排序查询+常见单行函数
条件查询语法:select ②查询列表from ①表名where ③筛选条件;//根据条件,判断数据是否能够留下来分类1. 按条件表达式筛选条件运算符:>,<,=,<>,>=,<=2. 按逻辑表达式筛选逻辑运算符:and,or,not注意:逻辑运算符其实并不能单独的作为判断条件使用,换句话说,它必须与条件表达式配合使用,用来连接条件表达式3. 模糊查询 #其实这也算是条件表达式,只是更加高级like特点:一般和通配符搭配使用通配符:
2020-10-22 21:28:11
85
原创 MySql_2_DQL基础查询
DQLDQL,DML,DDL,TCLDQL: Data Query Language,数据查询语言,主要关键字——selectDML: Data Manipulation Language,数据操作语言,主要内容,增删改查DDL: Data Definition Language,数据定义语言,主要内容,对库,表的定义与删除TCL: Transaction Control Language,事务控制语言基础查询:select 查询列表 from 表名;特点:1. 查询列表可以是:表中
2020-10-21 15:56:46
87
原创 MySQL_1 数据库认知
数据库的认知数据库的好处实现数据持久化使用完整的管理系统统一管理,易于查询相关概念DB——DataBase,数据库,存储数据的仓库,它保存了一系列有组织,规范的数据(为什么是规范的——因为如果不规范,我们就无法查询,可以类比数组,如果不排序,直接查找是相当费力的,故而我们需要将数据规范化地存储起来)DBMS——DataBase management System数据库管理系统,DBMS1. DBMS与DB——DB是由DBMS创建的,并且我们也是通过DBMS来操作DB2. MySQL就是
2020-10-21 14:03:57
128
原创 10.20笔试
思特奇——java笔试题全是选择题,且都是从网上的一些题库中找的,各种类型的题都有,以下挑选两道比较有具代表性的“在调用方法时,若要使方法改变实参的值可以() A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对答案:B解析: 1. 首先说一下实参和形参的概念。在调用函数时,会给参数赋一个临时名称用于函数内部,这个名称(参数名)叫做形参,而实际传入方法的参数,叫实参。例如, m1(int a,int b);//方法m1,a,b均为int类型
2020-10-20 21:26:15
465
原创 JAVA_learning 28
异常程序执行发生的不正常情况称为“异常”,但注意,开发过程中的逻辑错误和语法错误不是异常异常体系结构:java.lang.ThrowableJAVA程序执行过程中发生的异常可分为两类:Error与ExceptionError: Java虚拟机无法解决的问题,JVM系统内部错误,资源耗尽,出现这些情况,一般不能通过编写针对性代码解决public static void main(String args[]){//StackOverflowError,栈溢出main(args);
2020-10-16 09:27:53
116
原创 Eclipse打不开lang包下的类文件 报错“Failed to create the part‘s controls“
Eclipse也用了一段时间了,之前遇到这个问题,也没来得及细想,就忽略了。这一阵子频繁的查看那些类文件的时候,被恶心到了。文件显然是没问题的,但是就是打不开Failed to create the part’s controls网上的解决办法包括但不限于:重启eclipse更新workspace(并不是真正的更换,类似于restart)修改代码,如数字有下划线的去掉下划线,修改注释——执行这个的主要原因是担心版本兼容的问题修改 windows > perference > ge
2020-10-14 21:50:36
784
原创 JAVA_learning 27
Interface(接口)JAVA不支持单继承,所以当从几个类中派生出一个子类来继承多个类所有的属性与方法的时候,继承不能满足我们的需求,以此引出接口,接口与类是两个并列的结构如何定义接口——通过定义接口的成员1. JDK7及以前只能定义全局常量与抽象方法,不能定义构造器——这意味着接口不能实例化,这里与抽象类不同,抽象类不能实例化,但是有构造器,因此它可以让子类实例化2. JDK8新特性,除了定义全局常量与抽象方法,还可以定义静态方法,默认方法。1. 但是接口中定义的静态方法只能接口自身调用
2020-10-12 22:39:38
99
原创 JAVA_learning 26
抽象类与抽象方法abstarct 关键字abstract可以修饰类,方法abstract修饰的类被称为抽象类,抽象类不能实例化1. 虽然抽象类不能实例化,即,不能new对象,构造方法不能使用,但是其子类可以,因为创建子类对象的时候一定会调用父类的构造器。2. 也就是说抽象类中一定会有构造器,便于子类对象实例化3. 在开发中一定会提供抽象类的子类,毕竟抽象类本身不能实例化,如果没有子类。那将毫无用处abstract修饰的方法称为抽象方法1. 不是指方法体内没有语句2. 抽象方法只有方法的声
2020-10-11 22:32:13
75
原创 JAVA_learning 25
单例设计模式所谓类的单例设计模式,就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例实现步骤:1. 在一个类中私有化构造器2. 直接在类的内部创建类的对象,要求此对象也必须是静态的3. 提供公共的静态方法,返回类的对象public class Singleton { public static void main(String args[]) { Bank bank1=Bank.getInstance(); Bank bank2=Bank.getInstanc
2020-10-11 16:13:00
173
1
原创 JAVA_learning 24
static关键字static主要用来修饰:属性,方法,方法块,内部类,但不能修饰构造器static修饰属性:因为局部变量的作用范围只为方法内部,不可能属于类或者对象,而static是面向类的,故static不能修饰局部变量使用static修饰的属性称为静态变量(类变量)非静态变量(实例变量):使用类创建多个对象,每一个对象都拥有独立的一套非静态属性,修改其中某个非静态属性不会对其他对象相应属性产生影响静态变量则不同,多个对象共享一个静态变量,当某个对象的静态变量改变时,其他对象的相应属性
2020-10-10 16:54:34
99
原创 JAVA_learning 23
单元测试Java中的jUnit单元测试步骤:1.选中当前包装类我们希望JAVA中的基本数据类型的变量也具有类的特征基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean基本数据类型,String,包装类之间如何相互转化基本数据类型 转 包装类 ,int num1=
2020-10-09 21:53:28
64
原创 JAVA_learning 22
继承继承的好处:减少代码的冗余,增强可扩展性,为多态的实现提供了前提条件classA extends classB继承所有属性与方法,就算这些属性与方法是私有的,也是已经继承了,但是不能直接使用而已一个类可以被多个子类继承,一个类只能有一父类多重继承,直接继承,间接继承所有类都直接或间接地继承于java.lang.ObjectJavaBean该类的权限是public,含有一个空参的构造器,且该构造器是public含有相关的属性,若该属性是private,则含该属性对应的set()
2020-10-08 21:18:39
79
原创 JAVA_learning 21
this关键字1.this 可以用来修饰属性与方法,一般可省略2.this 表示当前对象或当前正在创建的对象3.this的来源,String name;public User(){}public User(String n){ name=n;//这里的标识符命名不符合规范,但是如果写成name=name;那就没有意义,程序也不正确,于是我们引入this关键字 this.name=name;//this.name表示该变量是属性,而不是形参}4.this 调用构造器,形式this(),
2020-10-06 17:29:53
75
原创 JAVA_learning 20
面向对象之构造器构造器的作用:创建对象Person p=new Person();class Person{};//这里的Person()就是构造器,Person是我们定义的类,,但加上()就不是类了,而去掉括号又会报错如果我们没有显示的定义类的构造器的话,则系统默认会提供一个空参的构造器构造器的定义——权限修饰符+类名(){}构造器形式上与构造方法相似,但是功能完全不同,方法服务于对象,但构造器却是用来生成对象的一个类中可以有多个构造器,也就是构造器的重载,一旦我们显示的提供构造器,系统
2020-09-28 21:42:59
46
原创 JAVA_learning19
面向对象之封装与隐藏高内聚,低耦合高内聚——类的内部数据操作自己完成,不允许外部干涉低耦合——仅对外暴露少量的方法用于使用当我们创建一个对象后,可以通过“对象.属性”的方式,对对象的属性进行赋值,此时对属性的赋值仅受数值类型和存储空间的限制,但是这种限制强度太低,因此需要额外的方法,如setAttribute,来提高我们对属性的要求(不能在属性声明时体现),此外,我们还需要避免用户再次使用“对象.属性”的方式访问该属性,因此需要隐藏该属性,于是将default修改为更低的权限private,这样就
2020-09-26 16:46:39
79
原创 JAVA_learning 18
面向对象三大主线:a.Java类及类的成员——属性,方法,构造器,内部类,代码块b.面向对象的三大特征——继承,封装,多态,(抽象)c.其他关键字——static,interface,this,super,fianl,import,abstract,package类的内部结构——属性,方法类的属性初始化与array的初始化相似属性(成员变量)与局部变量的异同相同点:都是变量不同点:1.在类中声明的位置不同,属性在类的{}中定义,而局部变量在方法体,方法内,构造器内部定义2.权限修饰符,属
2020-09-26 15:25:28
50
原创 JAVA_learning17
数组数组(array)是引用类型,而数组的元素可以是基本数据类型数组中元素的存储是连续的——创建数组对象会在内存中开辟一块连续的空间数组一旦初始化完成,其长度就确定了数组元素的初始化值:整型:0浮点型:0.0char:ascii的0,注意不是'0'boolean:falsea中存放的是一个地址值,因此不能直接打印aint[] a= {1,2,3};System.out.println(a);//地址值int[][] b= new int[3][4];Syste
2020-09-24 21:12:44
103
1
原创 阿里云java基础测试(1)
.假设有如下程序:public class Demo {public static void main(String args[]) {int num = 2147483647 ;num += 2L ;System.out.println(num) ;}}最终的执行结果是什么?A. -2147483648B. 2147483649C. -2147483647D. 2java中int类型的字节数为4,所以表示范围为-2^(48-1) =-2147836482^(48-1)-1
2020-09-21 20:05:51
523
原创 为什么byte的表示范围为-128~127
1 byte=8 bit;00000000~11111111则8位总共能表示2^8=256个数值;对于有符号数值,貌似可以这样理解:+0:000000001:00000001+127:011111111-0:10000000-1:10000001-127:11111111但是,上述过程不正确对于正数,其原码=补码=反码对于负数,反码为原码除符号位外,其他位取反,补码则是反码+1例:111111111在计算机中指的是补码,而不是所谓的-127的原码,11111111→1111111
2020-09-21 19:49:45
321
原创 JAVA_learning15
数组的输出遍历输出数组的元素public class Test{ public static void main(String args[]){ int[] a = {2,4,6,7,3,5,9,1,8}; for(int i =0; i < a.length;i++) { System.out.println( a[i] ); } }}输出命令行参数pu...
2020-01-09 22:23:52
98
原创 JAVA_learning14
数组一维数组的声明:type var[]; 或者 type[] var;例如:int a1[];double b[];但是不能写成 int a[5];//不能指定数组长度数组的内存分析public class test{ public static void main(Strig args[]){ int[] s;//声明一个int类型的数组,在java中除基础数据类型外,...
2019-12-29 23:05:00
71
原创 JAVA_learning13
Finally在异常的捕获和处理过程中,finally语句的内容一定会执行可以用来删除临时文件FileInputStream in = null;try{ in = new FileInputStream("myfile.txt "); int b; b = in.read(); while (b != -1){ System.out.print((char) b); b ...
2019-12-28 22:17:28
69
原创 JAVA_learning12
异常 Exception运行期出现的错误,而不是javac 编译出现的错误exampleimport java.io.*;public class Test{ public static void main(String args[]){ int [] arr = {1,2,3};//数组 System.out.println(arr[2]); try{ Syste...
2019-12-28 16:00:14
83
原创 JAVA_learning11
interface(接口)java只支持单继承接口帮助我们实现多继承接口是一种特殊的抽象类抽象类中所有方法都是抽象方法,所有成员变量都是静态成员变量但是这个抽象类不用写abstract,抽象方法也不用写abstract ,因为interface中只能定义抽象方法interface中声明的属性默认为 public static final,也只能是这个interface中只能定义抽象方...
2019-11-27 12:22:32
86
原创 JAVA_learning10
对象转型castingexampleclass Animal { public String name; Animal(String name){ this.name = name; }}class Dog extends Animal{ public String further_color; Dog(String name, String further_color){...
2019-11-26 21:40:34
143
原创 JAVA_learnin9
Objectobject类是所有类的根基类public class Person{}等价于public class Person extends Object{}一个字符串和另外一种数据类型连接时,会将其在转化成字符串再连接但是当字符串和类连接时,需要用到ToStringexample_toString()public class TestToString{ public ...
2019-11-25 22:56:31
104
原创 JAVA_learning8
继承中的构造方法1.子类的构造过程中必须调用父类的构造方法2.super(argument_list)——调用父类构造方法this(argument_list)——调用子类(自身)的构造方法如果调用super,必须写在子类构造方法的第一行...
2019-11-23 15:26:36
65
原创 JAVA_learning7
类的继承extendexample不同的类对象,dog,cat,或lion都有run方法(会继承所有成员变量和方法),但同时一个子类只能拥有一个基类 class Parent{ private int n_private = 1; int n_friendly = 2; protected int n_protected = 3; public int n_public = 4;...
2019-11-22 23:07:49
66
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人