- 博客(27)
- 收藏
- 关注
原创 JAVA集合类整理
集合类之间的关系如下:实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口(图片来源)Collection:(java.util.*; JDK 1.2) 有以下核心方法:Collection接口下面有两个重要的子接口List和Set:List:允许元素重复.(JDK1.2)允许添加null,且允许添加多个null。相对于Collation加入了以下...
2018-08-28 19:01:49
8904
原创 详解List存储引用类型时需要复写 .equels()的原因
先来看下面一个例子:先定义了一个简单的POJO类,然后实例化了一个ArrayList存储Student对象import java.util.ArrayList;import java.util.List;class Student{ public int id; public String name; public Student(int id,String name) { ...
2018-08-28 18:10:56
594
原创 Java中的Propreties类
*.propreties文件是Java中的属性文件,在这种文件里面其文件内容的保存形式为:“key = value ”,通过ResourceBundle可以读取到文件的内容,但是要想编辑文件必须要使用到Propreties类。通俗点讲就相当于定义一个变量,在这个文件里面定义这些变量的值,在程序里面可以调用这些变量,好处就是,如果程序中的参数值需要变动,直接来改这个.property文件就可以了...
2018-08-25 20:05:24
605
原创 集合的四种遍历输出的方式
Iterator单向迭代输出常用方法:hasNext(),next();Collection内部实现了Iterable接口,List和Set和set的子类都可以通过这个接口实现遍历输出。以Arraylist为: List<Integer> list = new ArrayList<>(); list.add(9); list.add(5);...
2018-08-25 19:05:34
7551
原创 结合简单的TCP服务器/客户端理解TCP连接时的三次握手和断开连接时的四次挥手
运行环境:CentOS6.5简单 的Linux服务器:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<netinet/in.h>#include<arpa/inet.h>#include<s...
2018-08-24 19:08:06
2498
原创 Java中的基本数据类型
java使用Unicode编码(16进制),可以保存世界上所有语言 基本数据类型 基本类型 字节数 位数 最大值 最小值 byte 1byte 8bit 2^7 - 1 -128 short 2byte 16bit 2^15 - 1 -32768 int 4byte 3...
2018-08-20 19:58:23
491
原创 fail-fast和fail-safe的区别
简介:fail-fast(快速失败)是Java对java.util包下的所有集合类的是一种错误检测机制。fail-safe(安全失败)采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。区别:java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。fail-f...
2018-08-17 18:30:02
1129
原创 详解fail-safe的实现机制
运行程序:import java.util.Iterator;import java.util.concurrent.CopyOnWriteArrayList;public class Fail { public static void main(String[] args) { CopyOnWriteArrayList <Integer>list=new CopyO...
2018-08-16 23:20:18
5359
原创 详解fail-fast产生的原因
运行以下程序:import java.util.ArrayList;import java.util.List;import java.util.Iterator;public class Fail { public static void main(String[] args) { List <Integer>list=new ArrayList<>(...
2018-08-16 22:11:54
1722
原创 反射与单级VO操作
现在有Employee这个VO类:我们我们 需要新建很多的对象,为了设置属性,我们需要不端的调用getter和setter方法。假如这个类有十几个甚至几十个那么这件事就会变得更麻烦。class Employee { private String name; public String sex; public String getName() { return name; }...
2018-08-14 13:02:22
456
2
原创 Java中ClassLoader类加载器的作用范围以及双亲委派模型
类加载器: JVM定义把类加载阶段中的“通过类的全名称获取此类的二进制流”这种操作实现的模块叫做类加载器。 BootStrap(启动类加载器):使用C++实现,是将JVM自身的一部分;启动加载器负责加载存放于<Java_HOME>\lib目录中能被JVM识别;启动类加载器无法被java直接引用。 ExtClassLoader(扩展类加载器):他负责加载&l...
2018-08-11 10:05:12
847
原创 Java 反射的基本概念和操作
反射 : 没有反射就没有Java的任何框架 1.核心操作:Object public final native Class<?> getClass() Class : 反射的核心类,描述其他类的类结构 2.Class 类的三中实例化方式(每个类的Class对象有且仅有一个,由JVM在类加载时创建) a.对象.get...
2018-08-11 00:20:23
2991
原创 Java创建线程的四种方式
1.继承Thread类实现多线程 run()为线程类的核心方法,相当于主线程的main方法,是每个线程的入口 a.一个线程调用 两次start()方法将会抛出线程状态异常,也就是的start()只可以被调用一次 b.native生明的方法只有方法名,没有方法体。是本地方法,不是抽象方法,而是调用c语言方法 registerNative()方法包含了所有与线程...
2018-07-28 22:10:16
112580
16
原创 程序员的语法糖?java泛型浅析
泛型:指的是在类定义的时候并不会设置类中的属性或方法中的具体类型,而是在类使用时再进行定义。泛型是JAVA中的语法糖。(语法糖:方便开发者开发,在运行阶段无用)泛型的作用:1.类型不一致会在编译期报错,确保在创建对象,存放对象或调用方法时使用的是正确的类型。2.杜绝了向下转型带来的安全隐患,避免在运行时出现ClassCastException 泛型类:示例:p...
2018-07-28 21:38:11
560
原创 Java中的包装类
一.包装类。包装类:就是将基本数据类型的值封装在类中让object接收装箱:将基本数据类型变为包装类对象,利用包装类提供的构造方法实现装箱处理拆箱:将包装类中包装的基本数据类型取出JDK1.5实现自动拆装箱,使用包装类就和使用基本数据类型一样规范:所有相同类型的包装类的比较一律使用.euqals();二.分类对象型包装类(object类的直接子类):Boolean(boolean) Charact...
2018-07-06 12:29:29
241
原创 Java中的Object
1.Object类是所有类的默认父类 2.object是方法参数最高统一类型,使用Object类可以接收所有类的对象(向上转型),所有引用数据类型,数组以及接口 3.Object中最重要的两种方法: 1.toString()取得对象信息 System.out.println(obj)调用的就是对...
2018-07-06 12:21:39
614
原创 Java中String
Outline一.实例化。1.方式(1).直接赋值:String str = “hello world”;(2).new实例化:String str1 =new String("hello world");2.区别(1).如果采用直接赋值方式为字符串创建实例化对象:JVM底层会自动维护一个对象池(字符串对象池),那么该对象会自动保存在这个对象池之中。如果下次继续采用直接赋值的方式创建String对...
2018-07-06 12:14:54
551
原创 linux 根目录各目录功能简介
CentOS_6.5:目录 说明 备注 bin 存放普通用户可执行的指令 即使在单用户模式下也能够执行处理 boot 开机引导目录 包括Linux内核文件与开机所需要的文件 dev 设备目录 所有的硬件设备及周边均放置在这个设备目录中 etc 各种配置文件目录 大部分配置属性均存放在这里 lib/lib64 开机时常用的动态链接库 bin及sbin指令也会调用对应的lib库...
2018-06-11 17:52:14
337
原创 Linux文件和目录权限浅析
一,Linux用户的类型。文件和文件目录的所有者 ->u文件和文件目录所有者所在组的用户 ->g其他用户 ->o二,Linux的权限有rwx三种.r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。x(eXecute...
2018-06-11 17:19:16
233
原创 指针数组,数组指针,函数指针,函数指针数组,指向函数指针数组的指针的理解
指针数组首先我们要明白,他是一个数组,然后数组的里面存放的是指针。例如,有10个整型指针,那么就可以定义一个指针数组把这10个指针放进去。那么就可以定义成:int *p[10];数组指针数组指针是一个指针,指向一个数组。 int a[6] = { 8, 2, 3, 4, 5, 6 };//首先定义一个数组 int(*p)[6] = &a; //定义一个数组指...
2018-05-30 21:51:18
176
原创 浅析C语言中的结构体
结构体:是一系列有相同类型或不同类型构的数据构成的数据集合。结构体的学习可以从以下几个方面开始:一.结构体类型的声明。struct tag{member-list;} vaeriable-list;注:tag 要做到见名知义,可以省略但是不建议省略 member-list 不能为空 veriable-list 建议省略(在需要的时候在声明)例如建造一个学生的结构体struct s...
2018-05-26 14:09:05
6193
2
原创 c语言中函数调用的过程
一.程序在内存中的占用。要学习C语言中函数调用的过程,必须要知道程序在内存中各个区域的分布。C语言的函数调用的过程主要分布在栈中,所以我们今天主要研究栈。二.几个基本的汇编指令。 从栈顶入栈称为push 从栈底出栈称为pop三.常用寄存器。 在CPU中:读取指令(内存-->CPU)-->分析指令(CPU)-->执行指令(CPU) 1. EAX:累积...
2018-05-11 15:30:01
29444
原创 浅析可变参数列表
场景:假如我们需要求两个数的平均数可以这样实现。int average(int n1,int n2){ int sum=n1+n2; int m=sum/2; return m}求三个数的平均数可以这样实现:int average(int n1,int n2,int n3){ int sum=n1+n2+n3; int m=sum/3; retur...
2018-05-10 23:30:03
139
原创 c语言实现三子棋
首先创建一个头文件,在头文件中放函数的声明等。#ifndef _GAME_H_#define _GAME_H_#include<stdio.h>#include<windows.h>void game();#pragma warning(disable :4996)#endif 然后创建一个main函数,用以驱动游戏。#includ...
2018-04-19 13:39:08
132
原创 C语言操作符汇总
算术操作符+ - * / %注意:%只可用于整数,不可用于浮点数。移位操作符补充:原码:在数值前直接加符号位的表示法。+2 0000 0010-2 1000 0010反码:正数:与原码一样负数:符号位为1,数值部分按位取反。eg:+2 0000 0010-2 1111 1101补码:正数:与原码一样负数:原码符号位不变,数值部分按位取反再加1...
2018-04-09 11:41:32
217
原创 java中static关键词用法及注意事项
1.static 修饰的静态属性,静态块。static修饰的属性为全局变量,即该属性不属于某个对象,可通过类名或对象名调用该属性。在类被加载时static修饰的属性会优先于普通属性加载,且只加载一次。class Book{ public Book(String msg) { System.out.println(msg); }}public class Person { int a=...
2018-03-27 23:51:35
267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人