自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zhxin606a的博客

小白的进阶之路

  • 博客(138)
  • 收藏
  • 关注

原创 题目整理

一、接口java接口包含函数声明和变量声明。(×)分析:接口中声明的“变量”必须为public final static,所以为常量。二、异常1、开销在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。(√)分析:try{}catch{}会增加额外的开销2、关于异常的编程,以下描述错误的是:(3 )...

2019-08-01 20:55:46 401

原创 题目整理

一、Statement和PreparedStatementPreparedStatement继承Statement,PreparedStatement 实例包含已编译的 SQL 语句, 所以其执行速度要快于Statement对象。作为Statement的子类,PreparedStatement继承了Statement的所有功能。三种方法execute、executeQuery和ex...

2019-08-01 20:03:36 298

原创 题目整理

一、下列代码的执行结果是(a=11 t.a=2)public class Test { public static int a = 1; public static void main(String[] args) { int a = 10; a++; Test.a++; Test t=new Test(); ...

2019-07-31 20:56:51 434

原创 题目整理(计网)

一、OSI七层模型二、拓扑结构目前广域网基本上采用网状拓扑结构。网状拓扑结构 又称作无规则结构,结点之间的联结是任意的,没有规律。系统可靠性高,比较容易扩展,但是结构复杂,每一结点都与多点进行连结,因此必须采用路由算法和流量控制方法。三、TCP使用多种机制来保证可靠传输,但不包括下列哪个(应用层协议)滑动窗口 确认 序列号 应用层协议UDP要保证可靠性传输,则依靠应用层...

2019-07-31 20:29:03 397

原创 题目整理

一、以下程序运行的结果为(run main)public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ ...

2019-07-31 20:13:02 426

原创 题目整理

一、在类方法中调用本类的类方法可以直接调用类方法:属于整个类,不能有与类对象有关的内容,具体限制如下:类方法中不能引用对象变量 类方法中不能调用类的对象方法 在类方法中不能使用super、this关键字 类方法不能被覆盖实例方法:属于类的某个对象,几乎没什么限制在类方法中绝不能调用实例方法。——错(可通过生成类的实例对象来调用)二、(单选题)下面程序的运行结果(t2>...

2019-07-29 20:27:00 1110

原创 Cause: org.postgresql.util.PSQLException: ERROR: column "province_id" does not exist

数据库中的表bs_province如图所示:SQL语句:select PROVINCE_ID, PROVINCE_CODE, PROVINCE_NAME, SHORT_NAME, LNG, LAT from bs_province报错:Cause: org.postgresql.util.PSQLException: ERROR: column "province_id" do...

2019-07-17 17:06:07 4877

原创 集合对比

1. 初始容量CollectionSet:HashSet TreeSet LinkedListSetList:ArrayList 数组的默认大小为 10 LinkedListQueuePriorityQueueMapTreeMap HashTable 默认为11 负载因子:0.75 HashMap 不指明大小时,默认为16 负载因子...

2019-05-14 20:53:27 592

原创 Java实现线程同步的方式

1. synchronized关键字synchronized关键字保证在同一时刻,只有一个线程可以执行某个对象内某一个方法或某一段代码块。重量级锁。包含两个特征:互斥性和可见性。synchronized可以解决一个线程看到对象处于不一致的状态,可以保证进入同步方法或者同步代码块的每个线程都可以看到由同一个锁保护之前所有的修改效果。实现同步的基础:Java中每个对象都可作为锁。...

2019-05-13 21:49:01 235

原创 面向对象回顾(静态变量、类加载机制/双亲委派模型、Object类的方法、类和对象区别)

1.静态变量存在什么位置?方法区2.类加载机制,双亲委派模型,好处是什么?某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。使用双亲委派模型的好处在于Java类随着它的类加载器一起具备了一种带有优先级的层次关系。例如类java.lang.Objec...

2019-05-09 23:30:44 256

原创 面向对象回顾(异常(try、catch、throw、throws和finally)、接口和抽象类、面向对象特征、泛型(extends/super))

1. 异常1.1 JAVA语言如何进行异常处理Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。1.2 关键字:throws,throw,try,cat...

2019-05-09 23:18:00 425

原创 面向对象回顾(构造函数、覆盖和重载、Query接口的list方法和iterate方法、面向对象的"六原则一法则"、反射、内部类)

1.什么是构造函数?什么是构造函数重载?什么是复制构造函数?当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。Java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。 每一个构造函数必须有它自己唯一的参数列表。Java不支持像C++中那样的复制构造函数,这个不同...

2019-05-09 22:53:03 339

原创 基础回顾(Map、==/equals()/hashcode())

1.map的分类和常见的情况java为数据结构中的映射定义了一个接口java.util.Map。它有四个实现类,分别是:HashMap Hashtable LinkedHashMap TreeMapMap主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap:是一个最常用的Map。它根据键的HashCode值存储数据。 根据...

2019-05-09 22:26:55 283

原创 关键字回顾(final/finally/finalize()、Synchronized、volatile、static)

1. final, finally, finalize的区别final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。1.1 final当用fin...

2019-05-09 17:22:24 333

原创 基础回顾(正则、循环、&和&&、 int和Integer、String /StringBuffer、Array和ArrayList、值传递和引用传递、 Lamda、java8)

1. 正则表达式1.1Java中是如何支持正则表达式操作的?Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式操作,如:import java.util.regex.Matche...

2019-05-09 16:53:02 245

原创 题库练习7(最小公倍数、求立方根、字符串逆序、记负均正、字符串分割)

1. 求最小公倍数import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b=sc.nextInt...

2019-05-08 14:35:36 322

原创 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)

1. 句子逆序将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI”。所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc...

2019-05-07 16:39:30 247

原创 题库练习4(提取不重复的数字、字符个数统计、数字颠倒、字符串反转)

1. 提取不重复的数字输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。1.1 分析注意去重的同时要保证数字要按照输入顺序打印——LinkedHashSetimport java.util.*;public class Main{ public static void main(String[] args){ Scanner...

2019-05-07 11:09:09 637

原创 题库练习3(质因子、取近似值、合并表记录)

1. 质因子功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为22335)最后一个数后面也要有空格import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(S...

2019-05-07 10:12:21 239

原创 题库练习2(随机数去重排序、分割字符串、进制转换)

1. 随机数去重排序明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。1....

2019-05-06 21:59:13 927

原创 题库练习1(单词长度、统计字符个数、)

1.计算字符串最后一个单词的长度,单词以空格隔开。1.1 分析两个指针:pre和post。用于确定最后一个单词的前后位置当pre位置的字符为空格时,post置为它的下一位,post自增,知道它等于数组长度(遍历结束)或者它当前所指位置为空格;若为空格,则令pre=post,post=pre+1重复上述步骤import java.util.Scanner;public cl...

2019-05-06 16:45:12 483

原创 磁盘臂调度算法

磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:(https://baike.baidu.com/item/磁盘调度算法/3505728?fr=aladdin)1. 先来先服务算法(FCFS)根据进程请求访问磁盘...

2019-04-27 18:43:42 3204

原创 事务、事件(文件、时间、调度和执行)、复制、分片(范围、哈希)、简单的论坛系统分析

1.事务一个事务包含了多个命令,服务器在执行事务期间,不会改去执行其它客户端的命令请求。事务中的多个命令被一次性发送给服务器,而不是一条一条发送,这种方式被称为流水线。它可以减少客户端与服务器之间的网络通信次数从而提升性能。Redis 最简单的事务实现方式是使用 MULTI 和 EXEC 命令将事务操作包围起来。2. 事件Redis 服务器是一个事件驱动程序。2.1 文...

2019-04-27 18:43:21 347

原创 数据结构(字典,跳跃表)、使用场景(计数器、缓存、查找表、消息队列、会话缓存、分布式锁)、Redis 与 Memcached、 键的过期时间、数据淘汰策略、持久化(RDB、AOF)

1. 数据结构1.1 字典dictht 是一个散列表结构,使用拉链法保存哈希冲突的 dictEntry/* This is our hash table structure. Every dictionary has two of this as we* implement incremental rehashing, for the old to the new table.*/...

2019-04-26 21:58:23 694

原创 Redis概述、数据类型

1. 概述Redis 是速度非常快的非关系型(NoSQL) 内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持的五种类型数据类型为:字符串、列表、集合、散列表、有序集合。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。2. 数据类型数据类型 可以存储的值 操作 STRING...

2019-04-26 21:38:13 255

原创 关系数据库设计理论(函数依赖、异常、范式)、ER图

1. 关系数据库设计理论1.1 函数依赖记 A->B 表示 A 函数决定 B,也可以说 B 函数依赖于 A。如果 {A1,A2,... ,An} 是关系的一个或多个属性的集合,该集合函数决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。对于 A->B,如果能找到 A 的真子集 A',使得 A'-> B,那么 A->B 就是部分函数依赖,否则就是完全...

2019-04-26 20:45:39 3571

原创 隔离级别(未提交读、提交读、可重复读、可串行化)、多版本并发控制、Next-Key Locks(Record Locks、Gap Locks)

1. 隔离级别1.1 未提交读(READ UNCOMMITTED)事务中的修改,即使没有提交,对其它事务也是可见的。1.2 提交读(READ COMMITTED)一个事务只能读取已经提交的事务所做的修改。换句话说,一个事务所做的修改在提交之前对其它事务是不可见的。1.3 可重复读(REPEATABLE READ)保证在同一个事务中多次读取同样数据的结果是一样的。1.4 ...

2019-04-26 20:36:29 2703

原创 事务(ACID)、并发一致性问题(丢失修改、读脏数据、不可重复读、幻影读)、封锁(封锁粒度、类型、协议、MySQL 隐式与显示锁定)

1. 事务1.1 概念事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。1.2ACID1.2.1 原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。...

2019-04-26 17:14:14 1322

原创 复制(主从复制、读写分离)

1. 复制1.1 主从复制主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程。binlog 线程 :负责将主服务器上的数据更改写入二进制日志中。 I/O 线程 :负责从主服务器上读取二进制日志,并写入从服务器的中继日志中。 SQL 线程 :负责读取中继日志并重放其中的 SQL 语句。1.2读写分离主服务器处理写操作以及实时性要求比较高的读操作,而从服务器...

2019-04-26 16:48:05 471

原创 数据类型(整型、浮点数、字符串、时间和日期)、切分(水平、垂直)

1. 数据类型1.1 整型TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 分别使用 8, 16, 24, 32, 64 位存储空间,一般情况下越小的列越好。INT(11) 中的数字只是规定了交互工具显示字符的个数,对于存储和计算来说是没有意义的。1.2 浮点数FLOAT 和 DOUBLE 为浮点类型,DECIMAL 为高精度小数类型。CPU ...

2019-04-26 16:45:22 1422

原创 查询性能优化(使用 Explain 进行分析、优化数据访问、重构查询方式)、存储引擎(InnoDB/MyISAM)

1.查询性能优化1.1 使用 Explain 进行分析Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。比较重要的字段有:select_type : 查询类型,有简单查询、联合查询、子查询等 key : 使用的索引 rows : 扫描的行数1.2 优化数据访问1.2.1 减少请求的数据量只返回必要的列:最好不要...

2019-04-26 16:31:53 387

原创 MySQL索引(B+Tree 索引、哈希索引、全文索引、 空间数据索引)、索引优化、优点、使用场景

1. MySQL索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。1.1 B+Tree 索引是大多数 MySQL 存储引擎的默认索引类型。因为不再需要进行全表扫描,只需要对树进行搜索即可,因此查找速度快很多。除了用于查找,还可以用于排序和分组。可以指定多个列作为索引列,多个索引列共同组成键适用于全键值、键值范围和键前缀查找,其中...

2019-04-26 16:13:56 1344

原创 ThreadPoolExecutor

1. 线程池的状态在ThreadPoolExecutor中定义了一个volatile变量,另外定义了几个static final变量表示线程池的各个状态:volatile int runState;// 表示当前线程池的状态,它是一个volatile变量用来保证线程之间的可见性// 线程池状态static final int RUNNING = 0;// 当创建线程池后,初始时...

2019-04-26 15:50:18 286

原创 实现Java多线程

1. 实现Java多线程有三种使用线程的方法:实现 Runnable 接口; 实现 Callable 接口; 继承 Thread 类。实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行的。1.1 继承Thread类,重写run()方法;cl...

2019-04-24 14:32:00 198

原创 线程安全的实现方法

1. 互斥同步synchronized 和 ReentrantLock。2. 非阻塞同步互斥同步最主要的问题就是线程阻塞和唤醒所带来的性能问题,因此这种同步也称为阻塞同步。互斥同步属于一种悲观的并发策略,总是认为只要不去做正确的同步措施,那就肯定会出现问题。无论共享数据是否真的会出现竞争,它都要进行加锁(这里讨论的是概念模型,实际上虚拟机会优化掉很大一部分不必要的加锁) 、用户...

2019-04-21 19:48:57 1251

原创 AQS(CountdownLatch、CyclicBarrier、Semaphore)、FutureTask、BlockingQueue、ForkJoin

1. J.U.C - AQS (AbstractQueuedSynchronizer)java.util.concurrent(J.U.C) 大大提高了并发性能,AQS 被认为是 J.U.C 的核心。1.1CountdownLatch用来控制一个线程等待多个线程。维护了一个计数器 cnt,每次调用 countDown() 方法会让计数器的值减 1,减到 0的时候,那些因为调用 a...

2019-04-21 17:47:55 319

原创 互斥同步(synchronized、Lock、ReentrantLock、ReadWriteLock、ReentrantReadWriteLock)

互斥同步Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问:JVM 实现的 synchronized JDK 实现的 ReentrantLock1. synchronizedsynchronized关键字保证在同一时刻,只有一个线程可以执行某个对象内某一个方法或某一段代码块。重量级锁。包含两个特征:互斥性和可见性。synchronized可以解决一个线程看到对象...

2019-04-21 17:03:47 312

原创 中断(interrupted()、isInterrupted())、Executor的中断

1. 中断一个线程执行完毕之后会自动结束,如果在运行过程中发生异常也会提前结束。InterruptedException通过调用一个线程的 interrupt() 来中断该线程,如果该线程处于阻塞、限期等待或者无限期等待状态,那么就会抛出 InterruptedException,从而提前结束该线程。但是不能中断 I/O 阻塞和 synchronized 锁阻塞。对于以下代码,在 ...

2019-04-21 16:49:40 364

原创 线程的状态转换、sleep()、wait()、yeild()、终止线程的方法、线程之间的协作(join()、wait() notify() notifyAll()、await() signal() )

1.线程的状态转换1.1 新建(New)创建后尚未启动1.2 可运行(Runnable)可能正在运行,也可能正在等待 CPU 时间片。包含了操作系统线程状态中的 Running 和 Ready。1.3 阻塞(Blocking)等待获取一个排它锁,如果其线程释放了锁就会结束此状态。1.4 无限期等待(Waiting)等待其它线程显式地唤醒,否则不会被分配 CP...

2019-04-21 16:30:51 1091 1

原创 Executor框架、ThreadPoolExecutor、3种常见的线程池

参考:https://blog.csdn.net/javazejian/article/details/508905541. Executor框架为什么需要线程池?在java中,使用线程来执行异步任务时,线程的创建和销毁需要一定的开销,如果我们为每一个任务创建一个新的线程来执行的话,那么这些线程的创建与销毁将消耗大量的计算资源。同时为每一个任务创建一个新线程来执行,这样的方式可能会...

2019-04-21 16:03:31 431

空空如也

空空如也

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

TA关注的人

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