自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冼穆的博客

没有博客

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java-面试复习-整理04

目录锁悲观锁、乐观锁CAS:compare and swapAQS重入锁公平性锁和非公平性锁volatile和synchronized区别虚拟内存锁悲观锁、乐观锁悲观锁:   每次对数据的操作,都会担心数据被修改,所以在每次操作时都需要加锁,只有获取锁的线程才能操作该数据,操作该数据的其他线程就会被阻塞(synchronized锁就是悲观锁的体现)   使用场景:写多读少乐观锁:   每次对数据的操作,都不会担心数据被修改,当对数据进行读取操作,不需要进行加锁,当更新数据时,需要判断数据是否被

2020-10-16 16:26:33 102

原创 Java-面试复习-整理03

目录一些算法排序算法分治动态规划一些算法排序算法1.冒泡:1.时间复杂度:平均O(n2),最好O(n),最坏O(n2)   空间复杂度:O(1)   稳定(没有发生跳跃式的交换:排序前后相同数字的前后顺序没有改变)   每次将最大的数放到后面 public static int[] bubbleSort(int[] arr) { if(arr == null || arr.length <= 1){ return arr; }

2020-10-16 16:26:25 86

原创 Java-面试复习-整理02

目录面向对象三大特性封装继承多态一些模式单例模式面向对象三大特性封装   封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些借口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。   封装的实现:需要修改属性的访问控制符(修改为private),创建getter/setter方

2020-10-16 16:25:50 152

原创 Java-面试复习-整理01

目录一些集合HashMap和HashTable的异同HashMap如何解决线程安全问题?ConcurrentHashMapArrayList两种拷贝ArrayList和数组有什么区别?ArrayList、LinkedList的异同点TCP和UDPTCP和UDP的区别TCP数据可靠性的体现三次握手四次挥手String、stringbuilder、stringbuffer多线程一些集合HashMap和HashTable的异同相同点:   1.底层数据结构都为数组+链表   2.key都不能重复  

2020-09-05 00:17:15 192

原创 软件构造-MIT Readings 阅读总结

测试:测试优先编程——在写代码前先写好测试用例,尽早发现bug。利用分区与分区边界来选择测试用例。白盒测试与声明覆盖率。单元测试——将测试模块隔离开来。自动化回归测试杜绝新的bug产生。还记得好软件具备的三个属性吗?试着将它们和测试联系起来:远离bug 测试的意义在于发现程序中的bug,而“测试优先编程”的价值在于尽可能早的发现这些bug。易读性 测试并不会使代码审查变得容易,但是我们也要注意正确书写测试注释。可改动性 我们针对改动后的程序进行测试时只需要依赖规格说明中的行为描述。

2020-06-22 12:11:52 111

原创 软件构造-Reading 1:静态检查

大纲:阅读1:静态检查目标:冰雹序列计算冰雹序列类型静态类型静态检查、动态检查、无检查惊喜:原始类型并不是真正的数字!阅读练习数组和集合迭代方法变化的值与重新分配变量记录假设黑客派(Hacking)与 工程派(Engineering)本课程的目标为什么使用java?摘要参考阅读1:静态检查目标:学习静态类型了解好的软件的三大特性冰雹序列   作为一个运行示例,我们先来了解一下“冰雹序列”,它是这样定义的:从正整数n开始,如果n是偶数,则下一个数是n/2,否则下一个数是3n+1,直到n等于1。

2020-06-02 19:29:52 391

原创 软件构造-构件复用

可复用构件与软件复用的关系1.可复用构件的定义及特征   构件是指应用系统中可以明确辨识的有机构成成分,它具有相对独立性、互换性和功能性的特征。可复用构件则是指具有相对独立的功能和可复用价值的构件。   可复用构件应具备以下特征:有用性,必须提供有用的功能;可用性,必须易于理解和使用;可靠性 ,构件自身及其变形必须能正确工作;适应性,应易于通过参数化等方式在不同语境中进行配置;可移植性,能在不同的硬件平台和软件环境中工作。   随着对软件复用理解的深入,构件的概念已经不再局限于源代码构

2020-05-24 20:02:36 1967 1

原创 软件构造-软件复用技术

大纲:软件复用的定义内容优势范畴方式关键技术软件构件技术软件复用的定义软件复用是指利用现有的软件成分构造出高质量、高效率的新的软件系统。软件复用不只包括程序的复用,还包括每个活动所产生的制成品的复用。软件复用技术目前面临的难点是:如何能够将软件复用技术准确地、合理地运用到软件开发中。并将软件复用技术的优势充分发挥出来。内容应用软件系统的开发过程包含以下几个阶段:领域和需求分析、设计、编码、测试以及维护等,各个阶段的工作中均存在重复,而这些重复都可以作为软件复用的内容。一般可以分四个层次:第一,领

2020-05-13 15:34:11 1015

原创 Java-集合篇-HashMap

Map接口:数据结构:哈希表哈希表:通过关键码来映射到值的一个数据结构哈希函数:键与值映射的一个映射关系哈希函数:1.直接寻址法 : f(x)=kx+b (k、b都是常数)2.除留余数法 : f(x)=x%k (k<=m)[m为存储位置长度]哈希冲突:m!=n 但是 f(m)=f(n)解决:1.链地址法   2.探测法(线性探测、随机探测)HashMap:常...

2019-10-28 20:42:42 114

原创 Java-集合篇-LinkedList

首先,回顾一下ArrayList和数组有什么区别?  初始化大小:ArrayList可以不指定大小,数组必须指定大小  存储数据类型:ArrayList只能存储引用类型,数组可以存储引用类型和基本类型ArrayList比数组灵活(提供丰富的方法)LinkedList:特点:数据按照插入有序可以存储null值可以重复存储数据底层数据结构为链表LinkedList源码解读pu...

2019-10-28 20:11:21 113

原创 Java-集合篇-迭代器

迭代器是一种设计模式,提供了一种方法,来对集合,容器进行遍历的方式不需要关注底层数据结构和数据类型,来达到底层和上层遍历解耦的目的iterator迭代器方法介绍:boolean hasNext() :判断集合是否还有元素E next() :返回当前数据void remove() :删除元素注意:使用时hasNext、next需要轮循出现(hasNext、remove也是一样) ...

2019-10-26 17:58:07 101

原创 Java-集合篇-ArrayList

ArrayList底层数据结构是数组集合存在于Java.util包路径下特点: 重复性:数据可以重复 null值:可以有null值存在 有序性:能保证数据的插入有序常用方法介绍int size(); 集合中存储元素的个数boolean isEmpty(); 判断当前集合是否为空,返回值是布尔类型:false(集合不为空)true(集合为空)boolean contains(Obj...

2019-10-17 21:22:06 111

原创 Java-集合篇-集合框架图

  在介绍集合之前,我们先通过集合框架图了解集合里的主要内容和它们之间的关系,下图是我简单注解后的框架图:  其中,对List和Set的注解关注点为:    元素是否可重复    元素是否可以为null    元素是否有序List:  可重复    可为null    有序Set:  不能重复    元素无序(插入顺序)其他简要简介:ArrayList:  数组   ...

2019-10-17 21:02:46 356

原创 Java-IO流篇-DataOutputStream

DataOutputStreamDataOutputStreams是OutputStream的子类。是数据输出流,此类继承自FillterOutputStream类,同时实现DataOutput接口。在DataOutput接口定义了一系列写入各种数据的方法。从类 java.io.FilterOutputStream 继承的方法有:close,write从接口 java.io.DataOut...

2019-03-27 19:18:29 23962 2

原创 Java-数据结构篇-七种排序的简要总结

总结:七种排序一、冒泡排序(以下皆以从小到大排序为例)1.时间复杂度平均情况:O(n^2)最好情况:O(n)最坏情况:O(n^2)2.空间复杂度:O(1)3.稳定性:稳定(没有发生跳跃式的交换)4.代码示例public static int[] bubbleSort(int[] arr) { if(arr == null || arr.length &lt;= 1...

2019-02-26 17:08:42 146

原创 Java-基础篇-变量与常量-常量

变量与常量——变量变量:运行的时候得到其数据;定义之后,必须初始化才能使用;变量表示存储位置,每个变量必须具有一个类型;通过赋值可以更改变量的值。在方法内部声明的变量,称为“局部变量”。在类内部(但不在该类内部的任何方法中)声明的变量,称为“成员变量”,即类的字段。局部变量的声明和赋值格式如下:1.声明变量:数据类型 变量名[,变量名……];数据类型 变量名 = 初值[,变量名 = ...

2018-11-21 22:01:22 254

原创 Java-基础篇-变量与常量-变量

——变量变量:运行的时候得到其数据;定义之后,必须初始化才能使用;变量表示存储位置,每个变量必须具有一个类型;通过赋值可以更改变量的值。在方法内部声明的变量,称为“局部变量”。在类内部(但不在该类内部的任何方法中)声明的变量,称为“成员变量”,即类的字段。局部变量的声明和赋值格式如下:1.声明变量:数据类型 变量名[,变量名……];数据类型 变量名 = 初值[,变量名 = 初值……];...

2018-11-21 21:14:26 243

原创 Java-例题篇-简单004

import java.util.Arrays;import java.util.Scanner;/** * @Author: lishi * @Description: * @Date: Create in 21:05 2018/11/17 */public class sudoku { public static int[][] fun(int[][] arr,int ...

2018-11-18 11:04:32 126

原创 Java-例题篇-简单003

1.求一个数组中两个只出现一次的数public static void fun(int[] arr) { int xor = 0,xor1 = 0,xor2 = 0,pos = 0; for(int i = 0;i &amp;amp;amp;amp;lt; arr.length;i++){ xor = xor ^ arr[i]; } for...

2018-11-16 20:25:03 170

原创 Java-基础篇-数据类型-类型转换

类型转换—自动类型转换自动类型转换又称为隐式转换,不需要源代码中的任何特殊语法,一般只允许发生在从小的值范围到大的值范围的类型的转换,转换后的数值大小不受影响。例如:int i1 = 123;double d1;d1 = i1; //从int到double的隐式转换在某些情况下,隐式转换可能会降低精度,例如:从long到float的转换。Java隐式转换示意图(m表示可能会降低精...

2018-11-14 19:13:48 156

原创 Java-例题篇-简单002

1.排序数组并二分查找某个元素,返回下标public static int fun(int[] array,int value) { int min = 0,max = array.length - 1,mid = (min + max) / 2; while(array[mid] != value) { if(array[mid] &amp;amp;amp;lt...

2018-11-10 20:42:14 141

原创 Java-例题篇-简单001

求所有三位数的水仙花数 public static void fun() { int a,b,c; for(int i=100;i&amp;amp;amp;amp;amp;amp;lt;1000;i++){ a = i / 100; //百位 b = i % 100 / 10; //十位 c = i % 10; ...

2018-11-09 20:21:22 190

原创 Java-基础篇-数据类型-装箱与拆箱

装箱和拆箱Java数据类型中的8种简单类型分别为:boolean、byte、char、short、int、long、float和double,Java类库的java.lang包中定义了8种包装(wrapper):Boolean、Byte、Character、Short、Integer、Float和Double。简单数据类型直接存储堆栈,可以实现高效率处理,而对应的引用类型则封装了许多方法,可以...

2018-11-09 14:39:23 193

原创 Java-基础篇-数据类型简介

数据类型简介Java是强类型(strongly typed)语言,即每个变量和对象都必须具有声明类型,这样编译时就可以确定变量的类型,从而通过编译器避免许多错误。Java数据类型分为基本数据类型和引用类型:基本数据类型数值型字符型布尔型整数型浮点型byte short int longfloat doublecharboolean引用数据类型数组string类 接口 枚举...基本数据类...

2018-11-08 22:54:29 227

数据结构第一章习题

数据结构第一章习题,可巩固算法及数据结构知识,适合复习

2018-09-27

空空如也

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

TA关注的人

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