随笔分类 - Java基础
摘要:注解概述 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 简单来说,就是说明程序的。给计算机看的。这里要说一下注释:用文
阅读全文
摘要:反射:框架设计的灵魂 框架: 半成品软件。可以在框架的基础上进行软件开发,简化编码 反射: 将类的各个组成部分封装为其他对象,这就是反射机制 好处: 可以在程序运行过程中,操作这些对象。 可以解耦,提高程序的可扩展性。 Java在计算机中经历的三个阶段: 获取字节码Class对象的三种方式 定义一个
阅读全文
摘要:Junit单元测试分类 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 白盒测试:需要写代码的。关注程序具体的执行流程。 Junit使用:白盒测试 步骤 定义一个测试类(测试用例) 建议: 测试类名:被测试的类名Test(如CalculatorTest) 包名:xxx.xxx.xx.
阅读全文
摘要:方法引用 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑? 冗余的Lambda场景 来看一个简单的函数式接口以应用Lambda表达式: @F
阅读全文
摘要:在兼顾面向对象特性的基础上,Java语言通过Lambda表达式与方法引用等,为开发者打开了函数式编程的大门。 下面我们做一个初探。 Lambda的延迟执行 有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费。而Lambda表达式是延迟执行的,这正好可以 作为解决方案,提升性能。 性能浪费的日
阅读全文
摘要:模拟Browser/Servers服务器 模拟网站服务器,使用浏览器访问自己编写的服务端程序,查看网页效果。 案例分析 准备页面数据 创建index.html文件,文件内容如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>
阅读全文
摘要:概述 TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。 两端通信的步骤 服务端程序,需要事先启动,等待客户端的连接。 客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。 在Java中,提供了两个类用于实现TCP通信
阅读全文
摘要:软件结构 C/S结构:全称为Client/Servers结构,是指客户端和服务结构。常见程序有QQ、迅雪等软件。 B/S结构:全称为 Browser/ Servers结构,是指浏览器和服务结构。常见浏览器有谷歌、火狐等。 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的
阅读全文
摘要:递归概述 概念:指在当前方法内调用自己的这种现象。 递归的分类:递归分为两种,直接递归和间接)递归。 直接递归称为方法自身调用自己 间接递归可以A方法调用B方法,B方法调用方法,C方法调用A方法。 注意事项: 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。 在递归中虽然有限定条件
阅读全文
摘要:函数式的编程思想 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法一一强调做什么,而不是以什么形式做。 冗余的Runnable代码 传统写法 当需要启动一个线程去完成任
阅读全文
摘要:线程池的思想概述 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结東了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任
阅读全文
摘要:线程的状态 首先了解一下什么是线程的状态,线程状态就是当线程被创建(new),并且启动(start)后,它不是一启动就进入了执行状态(run),也不是一直都处于执行状态。 这里说一下Java 的Thread类里面有一个State方法,这个方法里面涵盖了6种线程的状态,如下: public enum
阅读全文
摘要:线程安全 假如Java程序中有多个线程在同时运行,而这些线程可能会同时运行一部分的代码。如果说该Java程序每次运行的结果和单线程的运行结果是一样的,并且其他的变量值也都是和预期的结果是一样的,那么就可以说线程是安全的。 解析什么是线程安全:卖电影票案例 假如有一个电影院上映《葫芦娃大战奥特曼》,售
阅读全文
摘要:并发与并行 并发:指两个或多个事件在同一时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 进程与线程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个
阅读全文
摘要:throw关键字 作用:可以使用throw关键字在指定的方法中抛出指定的异常 使用格式: throw new xxxException(“异常产生的原因“) 注意事项 throw关键字必须写在方法的内部 throw关键字后边new的对象必须是 Exception或者 Exception的子类对象 t
阅读全文
摘要:异常概念 异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常体系 异常的机制,其实是帮助我们找到程序中的问题,异常的根类是java
阅读全文
摘要:直接引入实例进行分析。 通过索引查询数组值 public class DemoArrayException { public static void main(String[] args) { int[] array = {0, 1, 2, 3}; int element = DemoArrayEx
阅读全文
摘要:步骤分析 给出一串字符串,字符串中可以包含字母、数字、符号等等。 创建一个Map集合,key是字符串中的字符,value是字符的个数。 遍历字符串,获取每一个字符。 使用获取到的字符,去集合Map判断key(字符)是否存在。 假如key(字符)存在,那么该key对应的value数值增加1,即该字符的
阅读全文
摘要:Map集合概述 首先对比一下Map接口和Collection接口 // Collection集合,有一个泛型<E> public interface Collection<E> extends Iterable<E> { ... } // Map集合,有两个泛型<K, V> public inter
阅读全文
摘要:Collections类:java.utils.Collections是集合工具类,用来对集合进行操作。 Collections类的常用方法 public static <T> boolean adda1l(Collection<T> c, T ... elements)// 往集合中添加一些元素。
阅读全文