自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 容器类

import java.util.Arrays;import java.util.Random;//实现一个容器类class ArrayList<T> implements Cloneable{ protected T[] elementData; protected int size; //initialCapacity指定数组初始化大小 @SuppressWar

2017-11-17 18:22:57 290

原创 java抽象类和接口

一、抽象类概念:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类是用 abstract 修饰的类。用 abstract 修饰的方法称为抽象方法。在java中,含有抽象方法的类称为抽象类。抽象类不能定义对象。一般基类都可以作为抽象类而存在。抽象类不能调用抽象方法。

2017-11-17 16:43:12 243

原创 java继承与多态

一、什么是继承?继承:允许在保持原有类特性的基础上进行扩展,增加功能,从而产生新类(派生类)。也就是复用原有的代码。继承的目的:程序代码重用,减少冗余。原有的类称为基类或父类,继承而来的类称为派生类或子类。所有的类都是从Object类继承而来。继承的关键字extends。基类的成员变量需要用protected。protected和private都是私有,其主要区别是被protected修

2017-11-17 12:19:53 223

转载 Java泛型通配符解析

考虑一个这样的场景,计算数组中的最大元素。[code01][java] view plain copypublic class ArrayUtil {         public static  T max(T[] array) {                  if (array == null || 0 == array

2017-11-16 18:42:51 268

原创 java的泛型编程

一、泛型的基本概念泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。 泛型的作用:1、类型检查: 2、类型的强转关于是实现多类型的功能,Object也可以实现,但是Object类型并没有涉及到类

2017-11-16 13:14:12 223

原创 迷宫问题 非递归(java版)

一、简要 偶尔接触到迷宫问题发现挺有趣的,所以开始研究了一下。我觉得这个问题的关键是:怎么设计这个迷宫?怎么利用栈的特点来解决这个问题?在迷宫行走怎么更改迷宫的方向?怎么寻找迷宫路径?以及怎么才算找到迷宫路径?二、思路通过上面的问题关键,在脑中可以构造一个大体的思路:首先创建一个迷宫maze,对于迷宫可以采用mxn的一个二维数组来设计。创建一个mazenode节点类来控制二维数组中的

2017-10-31 15:47:10 1528 2

原创 Java之static的用法

一、 概念static是静态修饰符,主要是为了修饰成员变量,修饰行为方法,修饰代码块。二、为什么要引入static?我们在定义一个类时,有时候需要在类的内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,但是 如果想将类中此变量的值保存至下一次调用, 是不可能的,所以要解决这个问题,最容易想到的方法是定义一个全局的变量,但在Jav

2017-10-26 20:35:08 278

原创 单链表

1、判断当前单链表是否有环?如果有,需要返回环的入口节点,再返回环的节点个数。解决方案:首先判断是否有环,需要使用两个指针(java里面虽然没有指针,但是方法是一样的),一个为pfast,一个为pslow。pslow每次向前走一步,pfast每次向前走两步,若在某个时候pfast等于pslow,则存在环。到这里肯定会有疑问,如果有环它们两个一定会相遇么?难道不存在快的把慢的越过去,导致它们相遇不了

2017-10-26 18:29:47 266

原创 java--数组篇

一、java数组的三种初始化方式一维数组int[] array1=new int[7];int[] array2=new int[]{12,4,5,6,7,8};int[] array3={12,4,5,6,7,8};二维数组int[][] array4=new int[3][4];int[][] array5=new int[][]{{1,2,3},{4,5

2017-10-22 22:03:59 302

原创 栈的存储结构

一、栈的概念栈是一种只允许在一端进行插入和删除的线性表,它是一种操作受限的线性表。在表中只允许进行插入和删除的一端称为栈顶(top)。另一端称为栈底(bottom)。栈的插入操作称为入栈或者进栈(push)。栈的删除操作称为出栈或者退栈(pop)。当栈中无数据时,我们称为空栈。栈的特点:先进后出。! 二、栈的顺序存储结构java实现代码class SqStack{ priv

2017-10-22 13:37:24 2757

原创 java入门之java数据类型

java数据类型 1. 布尔型boolean类型数据没有值的大小,只允许取值为true或false,不可以用0或者非零的整型值来代替true或false。 2. 所有的类型都没有无符号类型。 3. Java字符采用Unicode编码—utf-8(常用)、utf-16。由于每个字符都占两个字节,因而可以用十六编码形式表示。 java类型在定义时一定要初始化。在java中,不

2017-10-15 11:46:50 244

原创 线程安全 可重入函数

一、概念线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。可重入函数:是一类重要的线程安全函数,其特点在于它们具有一种属性:当它们被多个线程调用时,不会引用任何共享的数据。 二、可重入函数 我们以strtok_r函数为例 1.函数原型: char *strtok_r

2017-10-12 17:33:45 366

原创 线程同步

线程同步概念:线程同步就是线程排队。同步就是排队。线程同步的目的就是避免线程“同步”执行。线程同步的几种方式 2.1.互斥锁 2.1.1.概念:实现线程访问临界资源的同步控制。 如果一个线程在临界区开始时,给互斥锁加锁, 那么其他的线程就必须等待线程解锁, 才能接着运行, 并访问资源。 2.1.2.操作: 初始化, 加锁、 解锁、 销毁锁锁初始化:int pthread_mutex_i

2017-10-12 17:03:52 265

原创 线程基础

一、线程的概念: 进程内部的一条执行序列,进程内部至少有一条执行线程,即main函数的执行体。 进程内部可以有多条线程,称为多线程, main 函数的线程称之为主线程, 其他线程称之为函数线程。 函数线程是由主线程通过系统调用函数创建的。 二、线程与进程的区别 1. 进程是资源分配的最小单位, 线程是调度(执行) 的最小单位。 2. 进程由两部分构成:进程内核对象,地址空间。线程也由两部分

2017-10-12 15:55:35 207

原创 堆排序

一、概念 1. 完全二叉树(Complete Binary Tree):若设二叉树的深度为h,除第 h层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。 2. 堆:是一种完全二叉树或者近似完全二叉树。 3. 堆排序:是选择排序的一种,主要是利用完全叉树这种数据结构所设计的一种排序算法。二、堆的分类 堆分为大根堆

2017-10-07 22:42:54 241

原创 Linux进程间通信

一、概念 进程间的通讯:是指在不同进程之间传播或交换信息,即A进程将“hello world”传递给B进程。 二、进程间的通讯方式 1、管道 管道实现的原理:通过在内存上开辟一块全新的空间。A、B进程都通过文件描述符操作这块空间,以完成数据交互的功能。 1.1、无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向 流动,而且只能在具有父子进程间

2017-09-29 20:00:00 299

空空如也

空空如也

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

TA关注的人

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