Java
文章平均质量分 81
swimming_in_it_
IT的爱好者,希望找到志同道合之人。
展开
-
Java中的多线程机制
对于线程的理解一直有限,最近回看下线程,然后自己做个详细的记录吧!一 线程和进程的区别进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。多进程是指操作系统能同时运行多原创 2017-08-10 20:16:04 · 1050 阅读 · 1 评论 -
Jmm之Java内存模型
关键字来提供可见性的。Java 作为高级语言,屏蔽了 CPU 多层缓存这些底层细节,用 JMM 定义了一套读写内存数据的规范,虽然我们不再需要关心一级缓存和二级缓存的问题,但是,JMM 抽象了主内存和工作内存的概念。每个线程只能够直接接触到工作内存,无法直接操作主内存,而工作内存中所保存的正是主内存的共享变量的副本,主内存和工作内存之间的通信是由 JMM 控制的。:这里的操作指的是复合操作,例如(加、减等),因为复合操作代表有着三个过程读取变量的值、对变量进行修改操作、写入内存,整个过程不具备原子性。原创 2023-03-14 22:12:02 · 178 阅读 · 0 评论 -
WebSocket与消息推送
B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链接,但不容易直接完成实时的消息推送功能,如聊天室、后台信息提示、实时更新数据等功能,但通过polling、Long polling、长连接、Flash Socket以及HTML5中定义的WebS...转载 2017-10-12 09:25:16 · 419 阅读 · 0 评论 -
Java中的回调机制
以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调...转载 2017-08-10 20:36:04 · 258 阅读 · 1 评论 -
Java中注解详解
在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行。注解可以做什么Java中的注解通常扮演以下角色 编译器指令 构建时指令 运行时指令其中 Java内置了三种编译器指令,本文后面部分会重点介绍 Java注解可以应用在构建时,即当你构建...原创 2017-04-09 09:42:14 · 316 阅读 · 0 评论 -
Java反射机制详解
1反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2反射机制能做什么反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有...原创 2017-06-09 15:33:09 · 282 阅读 · 1 评论 -
Java中的注解是如何工作的?
自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述到底什么是注解,为什么要引入注解,注解是如何工作的,如何编写自定义的注解(通过例子),什么情况下可以使用注解以及最新注解和ADF(应用开发框架)。这会花点儿时间,所以为自己准备一杯咖啡,让我们来进入注...转载 2017-06-09 16:11:22 · 476 阅读 · 1 评论 -
java中Map,List与Set详解
Set,List,Map的区别 java集合的主要分为三种类型:· Set(集)· List(列表)· Map(映射) 要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 ja...原创 2017-06-30 16:47:53 · 777 阅读 · 0 评论 -
Java面试题一
Mysql与Oracle区别:1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。2. Oracle支持大并发,大访问量,是OLTP最好的工具。3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存原创 2017-08-07 15:22:19 · 496 阅读 · 1 评论 -
回调函数
普通函数与回调函数的区别:对普通函数的调用:调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用-->等待被调用函数执行完毕-->继续执行”对回调函数调用:调用程序发出对回调函数的调用后,不等函数执行完毕,立即返回并继续执行。这样,调用程序执和被调用函数同时在执行。当原创 2017-08-19 19:04:16 · 385 阅读 · 0 评论 -
Java经典问题算法大全
Java经典问题算法大全/*【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... */package cn.com.flywater.FiftyAlgorthm;public class Fir原创 2017-07-26 10:44:21 · 358 阅读 · 1 评论 -
Java中常用的排序算法
分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。 1. 直接插入排序基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]转载 2017-07-26 10:20:40 · 348 阅读 · 0 评论 -
java基础之Java变量命名规范
Java是一种区分字母的大小写(case-sensitive)的语言,下面谈谈Java语言中包、类、变量等的命名规范。在这里我们就回顾一下这些基础的知识。方便以后的代码规范。(一)Package(包)的命名:Package的名字应该都是由一个小写单词组成,例如net.ebseries.modules。(二)Class(类)的命名:Class的名字首字母大写,通常由多个单词合成一个类原创 2017-08-07 16:17:21 · 1338 阅读 · 0 评论 -
java中的内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中 实例1:内部类的基本结构//外部类class Out { priva原创 2017-07-22 16:39:17 · 244 阅读 · 0 评论 -
Java中的代理
我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象,前者可抽象为代理类,后者可抽象为委托类(被代理类)。通过使用代理,通常有两个优点,并且能够分别与我们提到的微商代理的两个特点对应起来原创 2017-06-15 20:40:37 · 1219 阅读 · 1 评论 -
java中newInstance()和new()区别
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对原创 2017-06-09 14:36:47 · 675 阅读 · 1 评论 -
Java Serializable(序列化)的理解和总结
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。而Java序列化就是Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,原创 2017-06-09 13:57:37 · 730 阅读 · 1 评论 -
JAVA中堆和栈的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在原创 2017-06-09 13:36:02 · 322 阅读 · 0 评论