【Java基础】
Java基础
Mandy_i
科技让生活更美好,终身学习的践行者
展开
-
【JavaSE】——ArrayList源码解析
面试过程中常见问题ArrayList和LinkList有什么区别?通常答:两者数据结构不同,ArrayList是基于数组,LinkList是基于链表,ArrayList查询比较快,LinkList插入比较快。那么插入过程中LinkList真的比ArrayList快吗?那为什么coding过程无论插入还是查询都是使用ArrayList的情况多呢?你真的了解日常使用的ArrayList和LinkList的吗?...原创 2020-09-28 19:18:06 · 284 阅读 · 0 评论 -
【Java】——命名规范
基于三件事,学习Spring源码、阅读同事之前的代码、读《重构 改善既有代码的设计》意识到命名,是代码能否阅读的重要保证,而且这种对阅读理解的帮助是注释远不能替代的,利用这个机会重新学习下命名规范,如有错误之处恳请各位大佬指出,不胜感激。项目名称全部小写,多个单词中划线分隔"-",eg spring-cloud包名全部小写,点分隔符之间有且仅有一个自然语义的英文单词或者多个单词自然连接到一块(如 springframework,deepspace不需要使用任何分割)。包名...原创 2020-08-03 00:57:23 · 1363 阅读 · 0 评论 -
网络通信——BIO
网络通信在编程世界中是必不可少的一部分,到目前为止网络通信主要经历了三个阶段BIO,NIO,AIO。本文主要介绍网络通信涉及到的一些概念,并且采用一个网络通信的Demo展示何为BIO——阻塞IO。基础概念1、阻塞、非阻塞 阻塞和非阻塞是指进程在访问数据的时候,数据内部是否准备就绪的一种处理方式。当数据没有准备的时候阻塞:需要等待缓冲区的数据准备好才去处...原创 2019-05-14 23:34:50 · 631 阅读 · 2 评论 -
从零开始学netty
Netty概述:1、netty是基于Java NIO的网络应用框架,client-server框架2、Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。3、作为当前最流行的NIO框架,N...原创 2019-04-28 23:20:33 · 371 阅读 · 4 评论 -
【Java】——自定义注解对参数进行校验、spring扫描自定义注解
前提 上篇博客中详细介绍自定义注解的使用,本文主要是对自定义注解的进一步深入。会使用CGLIb进行动态代理来完成对方法参数是否为空的判断,以及再spring中如何扫描自定义注解自定义注解对方法参数为空校验为什么要用动态代理?因为Java的反射拿不到参数的相关信息,对方法参数进行校验,肯定是要在方法执行前进行校验,所以就需要动态代理来完成。对真实的对象进行代理,让代理对象执行参数校验这一部分的...原创 2018-07-11 16:45:41 · 20149 阅读 · 1 评论 -
【Java】——Java中使用自定义注解(Annotation)
前言 本文主要讲解自定义注解过程中需要用到的内容,以及Java中自定义注解。在以下的讲解中如有理解偏颇之处,恳请各位大神指正,小编不胜感激!如果有不清楚什么是注解的朋友,请先认识注解【从零学Java】——认识Annotation注解注解语法注解通过@interface关键字修饰public @interface TestAnnotation {}注解应用@TestAnnotationpu...原创 2018-07-11 16:03:42 · 551 阅读 · 3 评论 -
【Java基础】——数据类型
概要 Java中数据类型分为两种:基本类型和引用类型基本类型分为四种:基本类型的类型转换自动类型转换 当一个范围小的类型直接赋给另一个范围大的类型是,系统可以自动类型转换,下图中从左到右均为自动类型转换强制类型转换 上图中从右向左的类型转换为强制类型转换。当数值范围比较的转向数值范围比较小的可能会溢出。 因为计算机底层存储的是二进制,所以当发送溢出的时候直接从进行了截取,将...原创 2018-05-26 15:33:21 · 246 阅读 · 16 评论 -
【深入浅出JVM】——类加载过程
概念 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载流程:加载;(验证,准备,解析)三者统称为连接;初始化;使用;卸载。 类加载 通过一个类的全限定名来获取定义此类的二进制流 将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个...原创 2018-05-20 16:42:18 · 509 阅读 · 53 评论 -
【Java8新特性】——强大的Stream API
前提 Java8中除了lambda表达式,Stream API(java.util.stream.*)也是神一样的存在,尤其在简化代码,提高代码质量上,十分推荐使用!何为Stream?简单说,Stream API提供高效而且易于使用的处理数据方式。Stream是Java8中处理集合的关键抽象概念,可以对集合进行非常复杂的查找,过滤和映射等操作。利用Stream API对集合数据进行操作,类似...原创 2018-04-25 11:06:25 · 722 阅读 · 53 评论 -
【Java基础】——static和final的区别
前提 最近在项目中用到static和final,利用这个机会弥补一下之前的学习过程中不足。如有理解偏颇之处还请各位大神指正!finalfinal可以修饰:属性,方法,类,局部变量 final修饰的属性值可以在编译期,运行期进行赋值。一旦赋值后,基本类型的数据不能再被改变,final修饰的引用类型变量只保证引用的地址不会发生改变。 f...原创 2018-03-25 19:40:41 · 327 阅读 · 15 评论 -
【Java基础】——应用配置文件的反射
前提 上篇文章 【Java基础】——反射简单介绍了反射的使用方式,这篇博客主要讲解反射通过配置文件运行的步骤以及实现方式。也是各个框架利用反射最基本demo。 在上篇博客中获取reflect类的路径使用的reflect.class.getName(),如果当类不清楚,方法不清楚的时候又该怎样使...原创 2018-03-05 08:00:09 · 311 阅读 · 3 评论 -
【从零学Java】——认识Annotation注解
开发过程过程中时常看到代码用会出现@override类似的注解,在使用spring时候也会遇到各种各样的注解,可是为什么要用这些注解呢?注解是什么?何为注解? 描述注解就是元数据,何为元数据?用于描述数据的数据,也就是注解是源代码的元数据。 @Override public void setRemark(String remark) { this.re原创 2017-12-16 11:08:13 · 402 阅读 · 16 评论 -
从零学Java——异常体系
前提 之前的一篇文章曾讲解了java的异常处理机制,这篇文章主要讲解java中异常类,以及异常体系。异常体系 当Java运行的时候接收到异常对象后,会根据java异常类的继承体系,根据catch中关键字,寻找异常类或子类的实例。异常类的体系如图 Error错误 一般都和虚拟机有关系,系统崩溃,虚拟机错误,动态链接失败等,一般这种错误无法恢复或不可原创 2017-11-22 11:50:48 · 336 阅读 · 20 评论 -
从零学Java——异常处理机制
前提 异常处理早已成为衡量一门语言是否成熟的标志之一。增加异常处理机制后的程序有更好的容错性,以及健壮性。异常的处理机制1、使用try…catch捕获异常public static void main(String[] args) { try { int x = 10/0; } catch (Exception e) { e.printStackTrace原创 2017-11-11 17:39:05 · 975 阅读 · 52 评论 -
【Java基础】——断言assert使用
前言 assert是Java中关键字,表示断言。在jdk1.4之后引入的,编译器默认不开启断言。与使用assertEquals,assertNotNull类似的方法不一样,因为他们来源于org.junit.Assert,在不引入jar的前提不能使用。而assert是Java自带,仅在开发和测试阶段使用。 在一个具有自我保护能力的程序中,确信某个属性符合要求,并原创 2017-09-10 15:22:59 · 837 阅读 · 58 评论 -
Eclipse快捷键
常用快捷键熟悉快捷键可以帮助开发事半功倍,节省更多的时间来用于做有意义的事情。Ctrl + Shift + T: 打开Open Type查找类文件Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别原创 2017-07-02 11:05:04 · 330 阅读 · 12 评论 -
【websocket】——用户登录实现广播
咱们一般用的聊天软件都是先登录,然后会有一个提示谁上线的情况。其实这个操作是一个广播的过程。本文主要讲解利用websocket实现用户登录,并且简单的广播功能。主要分为两大功能块1、登录跳转 这个过程和普通系统一样,jsp—》Servlet—》重定向(chat.jsp),如有不理解的直接看代码吧。JSP //跳转到LoginServlet中原创 2017-06-18 10:39:13 · 5108 阅读 · 25 评论 -
【Webservice】——WSDL和SOAP
这将会是一个系列文章,其目的是总结自小编工作以来的一些应用,也是对自己学到知识的深入,请大家持续关注。 本文主要从根源简单的介绍一下webservice,同时介绍其中两个基础的概念,以及其解决的问题。 Webservice,顾名思义web服务。先理解什么叫服务?服务 现在的应用程序变得越来越复杂,甚至单一的应有程序无法完成全部的工作,只用一种语言开发更是不太可能,原创 2017-06-02 14:03:27 · 726 阅读 · 16 评论 -
【网络编程】——WebSocket打开和关闭通道,消息发送
HTML5给Web浏览器带来了全双工TCP连接WebSocket标准服务器的能力。浏览器和能够与服务器建立连接,通过已建立的通信信道来发送和接收数据而不需要由HTTP协议入额外的开销。1、环境配置jdk7或者是更高版本tomcat7或者更高版本两者版本保持一致(32位or64位)实现WebSocket技术需要的jar包在tomcat7.0中都包含,websocket-api原创 2017-05-25 15:47:11 · 14096 阅读 · 17 评论 -
【网络编程】——websocket简介
WebSocket简介 WebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程。其目的是在web浏览器和服务器进行频繁双向通信时,可以使服务器避免打开多个Http连接进行工作来节约资源,提高工作效率和资源利用率。为什么TCP不行? 在早期,网站只是一些简原创 2017-05-23 15:17:58 · 744 阅读 · 23 评论 -
【网络编程】——UDP和TCP通信方式
公司有计划打算做消息推送,自己也是闲着没事稍微了解一下,从基础开始学习以便真正使用的时候不用太过紧张吧。消息推送在各种应用非常的常见,这是网络编程的一种,还是从根本上开始了解吧。一、IP和端口号 网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接收数据的计算机或者发送数据的计算机。这个标识号就是IP地址,唯一标识计算机,IP地址现在广泛使用版本是IPv原创 2017-05-14 15:20:23 · 838 阅读 · 16 评论 -
【Java基础】——JSP九个内置对象
何为JSP? 要解释JSP的九个内置对象,必须先要搞懂何为JSP?JSP全称JavaService Pages中文:Java服务器页面。其实看到JSP学过.NET都可能对想到ASP,没错,两者确实很像。ASP是在HTML页面中加入C#用于显示层,像后台传递数据之类。而JSP是在HTML页面注入Java语言,便于向后端传递信息。JSP从本质上来分析就是一个简化版的Servlet。而jsp和原创 2017-04-27 14:42:57 · 853 阅读 · 26 评论 -
【Java基础】——浅谈堆栈内存
关于内存这一部分的处理,在程序中是极为重要的,这不仅关乎程序运行的速度而且还会对程序能否正常运行,以及对支持程序运行的硬件设备也是同样有需求的。小编也是把自己最近接触到的写出来,如有错误之处,恳请大家斧正。 在程序的运行过程中,会把内存分割成很多部分,这篇文章主要讲解堆栈的问题。 何为栈? 运行时对象区,就是所有在方法中定义的变量,变量的存放区,则为栈内存。随着方法的原创 2017-04-22 16:14:09 · 574 阅读 · 76 评论 -
【Java入门】——tomcat环境配置
小编最近准备开始学习Java了,需要配置一些关于Java的环境,除了配置JDK,以及按照Eclipse或者My eclipse之类的java编程软件,还有安装tomcat,本文主要讲tomcat的安装教程。什么是tocmat?干嘛用? Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍原创 2016-11-23 20:54:18 · 993 阅读 · 34 评论 -
【J2EE】——初识十三规范
在生活中无论使用什么物件都会有一套使用规范,而JavaEE就是基于java的技术的一系列标准规范,核心是一组技术规范与指南,包含各类组件,服务架构和技术层次,都共同的标准以及规范,使得Java架构在不同平台有非常好的兼容性。1、JDBC(Java Data Base Connectivity) 不知道大家看JDBC有没有想到什么?小编在学习VB的时候就知道了ODBC,原创 2016-10-09 20:11:42 · 794 阅读 · 23 评论 -
【J2SE】——初见Java
因为一些个人原因,现在终于进入走入了Java的世界,第一个程序HelloWorld敲开了Java的大门,只是觉得Java不在神秘,关于马士兵老师的视频,尝试颗粒归仓一下,也是便于以后的继续学习。简介j2SE Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment原创 2016-08-28 11:31:00 · 756 阅读 · 26 评论 -
【基础知识】——构造函数
什么是构造函数 与一般方法的区别 构造函数种类为什么要用总结 构造函数在学习C#的时候就略有接触,可是那个时候之间简单略知一二。在学习JS的时候再次接触到这个东西,听的云里雾里的所以尝试着总结一下。本文主要详细的总结一下构造函数是什么,与一般方法的区别,有几种,为什么要用?什么是构造函数 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值原创 2016-04-24 17:47:46 · 1620 阅读 · 31 评论 -
【C#】——抽象类VS接口
话说开始大话模式的学习了,可是C#中一些概念还没懂呢!真是惭愧,出来混的早晚要还的,开始新一轮的还债之路。何为抽象类? 在面向对象的概念中,所有的对象都可以用类来表示,但是并不是所有的类都有具体的对象可以对其实例化,所以这样的类就叫做抽象类。例如Animal类,说new Animal();实例一个动物,但是一个动物长什么样?不知道,动物就是一个抽象类,不能描述一个具体的对象与之对应。原创 2015-10-04 17:27:37 · 1130 阅读 · 15 评论 -
【C#】——重载和重写、覆盖
这一段时间一直在看C#视频,在视频遇到很多陌生的概念,看起来很相似,有些东西很不分清,所以对这些相似的概念总结一下,帮助我们更好的学习。重写何为重写?“重写”父类方法就是修改它的实现方式或者说在子类中对它进行重新编写。重写是重写基类的方法,把父类中的方法变成我们更需要的。在基类的方法中必须要有virtual修饰符(用virtual修饰的方法叫虚方法),而在之类的方法中必须要有overr原创 2015-09-06 21:05:05 · 1251 阅读 · 24 评论