- 博客(50)
- 收藏
- 关注
原创 Spring全家桶之springIOC
一、这里先引入一点Spring的基本概念,大家可以百度查看 spring的组成与介绍Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,能够为企业级开发提供一站式服务。重量级:EJB(Enterprise JavaBean)开发复杂,功能强,侵入性高轻量级:Spring,开发比较简单,功能强大,侵入性低 IOC:控制反转,实现代码解耦 AOP:面向...
2019-11-01 14:22:17
211
原创 java—TCP协议与UDP协议的区别
TCP和UDP协议的区别TCP (transfer control protocol)—传输控制协议含义:一种面向连接(连接导向)的、可靠的、基于字节流 的运输层(Transport layer)通信协议 。特点:1)面向连接 2)点到点的通信 3)高可靠性 4)占用系统资源多,效率低生活案例:打电话UDP...
2019-08-30 09:43:08
344
原创 java—URL编程之从网络上下载图片
URL编程之从网络上下载图片(关于URL的相关知识可以看-> https://blog.csdn.net/weixin_45397671/article/details/97368436 )public class TestURL3 { public static final String DOWNLOAD_DIR="E:\\test\\"; public void d...
2019-08-30 09:31:28
339
原创 java—Socket网络编程之上传文件到服务器
实现从磁盘上传文件到服务器,服务器通过获取上传文件的文件名与文件内容,存储到指定路径的磁盘中。连接信息类:public class Connect { public static final int port=9999; public static final String ip="127.0.0.1";}Socket类:public class TestSocket ...
2019-08-30 09:16:14
473
原创 javaIO流—对象流(序列化与反序列化)
对象流的作用:可以读写八种基本数据类型,还可以读写实体类对象对象流 可以用来做 对象的序列化与反序列化 (Serialization) 1、 ObjectOutputStream 序列化:将对象转化为二进制byte流的过程,以下是对象流特有输出方法: void writeByte(byte data) void wr...
2019-08-28 22:03:08
343
原创 javaIO流—缓冲流
缓冲字节流 BufferedInputStream 和 BufferedOutputStream缓冲字符流:BufferedReader 、 BufferedWriter (缓冲流都是处理流)缓冲流原理:会在内存中开辟一个空间作为缓冲区,在读写之前,先将磁盘数据导入到缓冲区,在读写时直接从缓冲区进行读写,减少了直接从磁盘读写次数,从而提高读写效率。缓冲流使用:1) 读文...
2019-08-28 11:59:49
198
1
原创 HashSet解析
运用HashSet存储自定义对象 ——Person必须重写HashCode()方法和equal()方法public class Person { private String name; private int age; public String getName() { return name; } public void setName(String ...
2019-08-07 19:56:27
126
原创 HashMap解析
HashMap的底层是哈希表,关于哈希表的存储原理可以看我博客《哈希表的存储原理》。关于HashMap存储 自定义对象 的知识可以看我博客《HashSet解析》,方式是相同的。HashMap常用方法的运用与遍历map集合的三种方式:public class TestHashMap { public static void main(String[] args) { HashMa...
2019-08-07 19:48:50
148
原创 HashMap与Hashtable的区别
版本不同HashMap ;JDK1.2 Hashtable JDK1.0 HashMap继承了AbstractMap,实现了Map接口;Hashtable继承了 Dictionary,实现Map接口 HashMap允许null键和null值,但null作为key只允许一个;Hashtable 为非null的键和值 HashMap是线程不同步的(效率高,安全性低);Hashtable是线程同步...
2019-08-07 19:42:47
116
原创 vector与ArrayList的区别
Vector类称作向量类,它实现了动态数组,是可以实现自动增长的对象数组Vector 与 ArrayList的区别相同点:底层数据结构相同,都是Object类型的数组不同点:1、Vector的add()方法是同步(synchroniszed)方法,ArrayList的add()方法是非同步方法2、Vector是在调用构造方法(创建对象)时,直接初始化容量为10,ArrayLis...
2019-08-07 19:39:37
239
原创 java容器——ArrayList详解
ArrayList是Java集合框架中的一个重要的类,它继承于AbstractList,实现了List接口。ArrayList底层数据结构是 数组,特点是有序,不唯一它提供了如下一些好处:动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小最简单的例子:ArrayListList=newArrayList();for(inti=0...
2019-08-07 19:34:29
170
原创 File类的定义及常用方法
File类的定义:文件和目录路径名的抽象表示形式。 功能: 一个File对象可以代表一个文件或目录, 可以实现获取文件和目录属性等功能, 可以实现对文件和目录的创建、删除等功能。 注意: File不能访问文件内容 ·获取File类对象的路径: File f1=n...
2019-08-07 14:40:53
2922
1
原创 java——线程间通信的三种方法
1.wait():调用了 Object类中wait()方法的线程进入等待池进行等待,等待池中的线程不去竞争对象锁,直到其它的线程通知,才会进入锁池;2.notify():随机唤醒一个在该对象上等待的线程,被唤醒的线程进行锁池,开始竞争 该对锁上的锁 ;3.notifyAll():唤醒所有在该对象上等待的线程,优先级高的线程有可能(并不是绝对)先竞争到对象锁 只能在同步方法和同步...
2019-08-06 15:25:27
478
原创 java——线程的生命周期
线程的生命周期有五个阶段:1.新生状态:用 new 关键字建立一个线程后,该线程对象就处于新生状态。处于新生状 态的线程有自己的内存空间,通过调用 start()方法进入就绪状态。2.就绪状态:处于就绪状态线程具备了运行条件,但还没分配到 CPU,处于线程就绪队 列,等待系统为其分配 CPU。当系统选定一个等待执行的线程后,它就会从就绪状态 进入执行状态,该动作称为“CPU 调度”。3...
2019-08-06 15:22:46
141
原创 实现线程同步的第三种方式——Lock锁
前面学习了两种线程同步锁 1)同步方法 同步监视器为当前对象this 2)同步代码块synchronized(同步监视器/共享资源对象){ }线程同步的第三种方法:Lock锁:对需要上锁的地方上锁 1)JDK1.5后新增的功能 2)与Synchronized相比,Lock可提供多种锁方案,更灵活 3)Java.util.concurrent.lo...
2019-08-04 22:26:28
314
原创 java深化——实现多线程的第三种方式(实现Callable接口,重写call方法)
前面学习了创建线程的两种方式: 1)继承Thread类 2)实现Runnable接口 这两种方式有如下缺点: 1)没有返回值 2)不支持泛型 3)异常必须处理实现多线程的第三种方式: 实现Callable接口,重写call方法 Callable功能更加强大 1)Future接口位于 java.util.concurre...
2019-08-04 22:19:04
2324
原创 java深化——自定义注解
自定义注解的语法: 使用@interface定义自定义注解时,自动继承了java.lang.annitation.Annotation接口 1)@interface 用来声明一个注解 2)其中的每一个方法实际上是声明了一个配置参数 a)方法的名称就是参数的名称 b)返回值类型就是参数类型(返回值类型只能是基本类型、Class、Strin...
2019-08-02 11:48:48
137
原创 java深化——注解的定义与使用
注解的作用: 1)不是程序本身,可以对程序作出解释。(类似注释) 2)可以被其他程序(比如编译器)读取。(注解信息处理流程,是注解和注释的重大区别,如果没有注解信息处理流程,则注解毫无意义)注解的格式: 注解是以“@注释名”在代码中存在,还可以添加一些参数值,例如@Suppress Warnings(value = “unchecked”)。注解的使用:...
2019-08-02 11:44:04
108
原创 java深化——反射机制详解
1.1 反射机制介绍 程序在运行的过程中加载一些“只知道相关名字”的类,以下代码,在程序运行时加载 User 类。 Class c=Class.forName("com.hmq.reflect.User"); 一个类被加载后,JVM 会创建一个对应类的 Class 对象,类的整个结构信息会被放到 Class 对象中。 这个 Class 对象就像镜子一样,通过...
2019-07-27 19:34:04
113
原创 java深化——网络编程之InetAddress类,InetSocketAddress类,UPL类 详解
一、InetAddress类 作用:封装计算机的IP地址,不包含端口号 常用方法:1)String getHostAddress() --->获得IP地址 2)String getHostName()---->获得主机名 3)static InetAddress getByNam...
2019-07-26 09:33:48
1032
原创 java深化——网络编程三要素详解
网络编程的三要素: 1)IP地址:唯一标识网络上的每一台计算机,两台计算机之 间通信的必备因素 2)端口号:计算机中应用的标号(代表一个应用程序), 0-1024 系统使用或保留端口 ,端号口占 2 个字节,所以 有效端口0-65535 3)通信协议:TCP 、 UDP一、IP 地址: IP 地址用于标识网络上的唯一一台计...
2019-07-26 09:10:01
312
原创 java多线程——线程常用的一些方法解释以及线程同步
线程的一些重要的方法Sleep:导致当前线程进入阻塞状态,阻塞的时间达到了指定的时间,当前线程从阻塞状态进入就绪状态,等待cpu 下次调度。在阻塞的过程中,如果当前对象持有监视器对象上的锁,那么该锁不会被释放。 Join:导致当前线程进入阻塞状态,调用join 方法的线程对象优先被调度执行(相对于被阻塞的线程)。被阻塞的线程,当调用join 方法的线程对象执行完毕之后,解除阻塞状态,进入就绪...
2019-07-25 09:28:01
118
原创 java多线程——线程的生命周期介绍与运行图
1、新生状态:用 new 关键字建立一个线程后,该线程对象就处于新生状态。处于新生状 态的线程有自己的内存空间, 通过调用start()方法进入就绪状态。2、就绪状态:处于就绪状态线程具备了运行条件,但还没分配到 CPU,处于线程就绪队 列,等待系统为其分配 CPU。 当系统选定一个等待执行的线程后...
2019-07-25 09:01:26
284
原创 java深化——实现多线程的两种方式
一、通过继承Thread类实现多线程的步骤: (1)继承Thread (2)重写run()方法 (3)通过Start()方法启动线程 一定的缺点:Java 中的类是单继承的,一旦继承了 Thread 类, 就不允许再去继承其它的类. Thread类实现了Runnable接口,在Thread类中,有一些比较关键的属性,比如name是...
2019-07-24 20:34:24
140
原创 多线程基本概念_程序_进程_线程
1.1 程序、进程、线程 程序:Program,是一个指令的集合 进程:Process,(正在执行中的程序)是一个静态的概念,进程是程序的一次静态态执行过程, 占用特定的地址空间. 每个进程都是独立的,由 3 部分组成 cpu,data,code 缺点:内存的浪费,cpu 的负担 线程:是进程中一个“单一的连续控制流程” (a...
2019-07-24 20:15:18
112
原创 java深化——各种类型的集合 存储方式的总结代码
有ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap六种集合的存储方式。需要注意的是HashSet存储与TreeSet的存储方式。以下是测试代码,代码中有解析:1、先编写一个用来创建对象的类Personpublic class Person implements Comparable<Person>{ private...
2019-07-23 20:08:00
508
原创 java深化——泛型的上限与泛型的下限
泛型的高级使用——容器中使用泛型(泛型的上限与下限)代码中有对泛型上限与下限的解释1、先编写一个父类Personpublic class Person { private String name; private int age; public String getName() { return name; } public void setName(String na...
2019-07-23 19:58:25
176
原创 java深化——文件字节流与文件字符流
文件字节流: FileInputStream/FileOutputStream FileInputStream通过字节的方式直接读取文件,适合读取所有类型的文件(图像、视频、文本文件等)。 Java也提供了FileReader专门直接读取文本文件。 FileOutputStream 通过字节的方式写数据到文件中,适合所有类型的文...
2019-07-22 21:00:13
115
原创 IO流的分类
流的分类: 按照流的方向: 1)输入流:数据源到程序(InputStream、Reader读进来) 2)输出流:程序到目的地(OutputStream、Writer写进去) 按照处理数据单元: 1)字节流:按照字节读取数据(InputStream、OutputStream) 2)字符流:按照字符读取数据(Reader、...
2019-07-22 20:53:45
112
原创 哈希表的存储原理(流程)
(1)调用hashCode()方法计算Hash码值(2)根据y=k(x)这样的函数计算存储位置 ——x就是哈希码值,y就是存储位置(3)如果位置上没有元素,则将元素存储(4)如果该位置上有元素,则需调用equal()方法比较内容是否相同,若相同则不再存储,不相同则存储在新的链表。...
2019-07-20 16:58:02
1280
原创 java深化——集合的接口与各种实现类的解析与对比总结
集合有Collection与Map两种接口,其中Collection有两种子接口(list、set)一、Collection接口的两个子接口(list、set): 1) List中的元素有序,不唯一。常用的实现类有ArrayList、LinkedList和 vector。 ·ArrayList:底层数据结构是(Object)数组;ArrayList的Object数组初始...
2019-07-19 20:32:34
234
原创 java深化——集合(容器)简介
什么是集合?集合,或者叫容器,是一个包含多个元素的对象; 集合可以对数据进行存储,检索,操作; 它们可以把许多个体组织成一个整体: 比如一副扑克牌(许多牌组成的集合); 比如一个电话本(许多姓名和号码的映射)。 什么是集合框架?集合框架是一个代表、操作集合的统一架构。所有的集合框架都包含以下几点:1、接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,...
2019-07-18 11:29:56
178
1
原创 java深化——枚举类
枚举的创建用enum关键字特点:1、枚举的直接父类是java.lang.Enum,但是不能显示的继承Enum2、枚举也是一个(特殊)类,可以定义构造方法、成员变量、普通方法和抽象方法3、默认私有的构造方法,它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个 enum的实例。(假构造器,底层没有无参数的构造器)4、枚举类型的对象是固定的,实例个数有限,不能...
2019-07-18 11:25:26
99
原创 java深化——内部类详解和匿名类
内部类定义:将一个类定义在另一个类的内部,该类就称为内部类内部类特点:内部类作为外部类的成员,可以直接访问外部类的成员(包括private成员); 内部类可以声明为private、默认、protected或public; 内部类成员只有在内部类的范围内才是有效的; 用内部类定义在外部类中不可访问的属性。这样就在外部类中 实现了 比外部类的private还要小的访问权限。内部类优缺点...
2019-07-16 19:42:41
103
原创 java数组——冒泡排序法与其优化
冒泡排序的基本算法public class TestBubble { public static void main(String[] args) { int [] arr = {45,25,78,99,13,55,65,15}; int temp; for(int i=0;i<arr.length-1;i++) { //这个循环代...
2019-07-16 19:40:23
99
原创 java入门——变量与常量
介绍:变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度 的存储空间。变量的本质:变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是 里面放置什 么值不确定。我们可通过变量名来访问“对应的存储空间”,从 而操纵这个“存储空间”存储的值。变量的分类:局部变量、成员变...
2019-07-15 20:54:09
164
原创 java入门——注释、标识符、关键字
1、注释:为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。单行注释:使用“//”开头,“//”后面的单行内容均为注释。多行注释:以“/*”开头以“*/”结尾,在“/*...
2019-07-15 20:52:40
200
原创 Java入门——helloword总结
java对大小写敏感,如果出现大小写拼写错误,程序可能出错。 关键字public被称作访问修饰符,用于控制程序的其他部分对这段代码的访 问级别。 关键字class的意思是类。Java是面向对象的语言,所有代码必须位于类里 面。 一个源文件中至多只能声明一个public的类,其他类的个数不限如果源文件 中包含一个 public 类,源文件名必须和其中定义的public的类名相同,且 以“.ja...
2019-07-15 20:51:09
215
原创 Java入门——java介绍
java发展历史:1991年,SUN公司的Green项目,Oak1995年,推出Java测试版1996年,JDK1.01997年,JDK1.11998年,JDK1.2,大大改进了早期版本缺陷,是一个革命性的版本,更名为Java2。2004年,J2SE 5.0 (1.5.0) Tiger老虎2006年,J2SE 6.0 (1.6.0) Mustang野马...
2019-07-15 20:48:31
70
原创 java深化——接口详解
一、初识接口:如果一个类中所有的方法均为abstract方法,那么这个类就可以声明为接口二、接口定义:使用interface修饰,是一种数据类型,引用数据类型。·1 接口中可以包含 抽象方法 public abstract 方法·2 接口中可以包含 非抽象方法 // JDK1.8新特性 ,必须使用default关键字...
2019-07-15 20:25:12
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人