![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
文章平均质量分 96
学习java
少年骇客QAQ
中国海洋大学2017级计算机科学与技术本科生在读
展开
-
Java笔记二十四——Spring开发
Spring是一个支持快速开发Java EE应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发Java EE应用程序的必备。在Spring Framework(最核心的Spring框架)基础上,又诞生了Spring Boot、Spring Cloud、Spring Data、Spring Security等一系列基于Spring Framework的项目。Spring FrameworkIoC容器容器是一种为某种特定组件的运行提供必要支持的一个软件环原创 2020-12-28 18:12:55 · 841 阅读 · 0 评论 -
Java笔记二十二——设计模式
使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性,降低代码的耦合度。设计模式基于以下几个原则:里氏替换原则——如果调用一个父类的方法可以成功,那么替换成子类调用也应该完全可以运行。开闭原则——对扩展开放,而对修改关闭增加新功能的时候,能不改代码就尽量不要改,如果只增加代码就完成了新功能,那是最好的。创新型模式创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离。工厂方法定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Metho原创 2020-11-26 20:03:09 · 397 阅读 · 1 评论 -
Java笔记二十一——函数式编程
Java不支持单独定义函数,但可以把静态方法视为独立的函数,把实例方法视为自带this参数的函数。函数式编程就是一种抽象程度很高的编程范式。函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!Java平台从Java 8开始,支持函数式编程。Lambda基础Lambda表示式单方法接口,如Comparator、Runnable、Callable以Comparator为例,我们想要调用Arrays.sort()时,可以传入一个Comparator实例,以匿名类方式(匿原创 2020-11-23 17:12:16 · 204 阅读 · 0 评论 -
Java笔记二十三——Web开发
JavaEE最核心的组件就是基于Servlet标准的Web服务器,开发者编写的应用程序是基于Servlet API并运行在Web服务器内部的:目前流行的基于Spring的轻量级JavaEE开发架构,使用最广泛的是Servlet和JMS,以及一系列开源组件。Web基础访问网站,使用App时,都是基于Web这种Browser/Server模式,简称BS架构,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。HTT原创 2020-11-20 11:11:25 · 416 阅读 · 0 评论 -
Java笔记二十——JDBC编程
Java为关系数据库定义了一套标准的访问接口:JDBCJDBC简介程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。为了便于程序保存和读取数据,而且,能直接通过条件快速查询到指定的数据,就出现了数据库(Database)这种专门用于集中存储和查询的软件。数据库类别付费的商用数据库:Oracle,典型的高富帅;SQL Server,微软自家产品,Windows定制专款;DB2,IBM原创 2020-11-13 14:32:44 · 155 阅读 · 0 评论 -
Java笔记十九——XML与JSON
XML和JSON是两种经常在网络使用的数据表示格式XML简介XML有几个特点:一是纯文本,默认使用UTF-8编码,二是可嵌套,适合表示结构化数据。XML的结构XML有固定的结构,首行必定是<?xml version="1.0"?>,可以加上可选的编码。紧接着,如果以类似声明的是文档定义类型(DTD:Document Type Definition),DTD是可选的。接下来是XML的文档内容,一个XML文档有且仅有一个根元素,根元素可以包含任意个子元素,元素可以包含属性,例如,123456原创 2020-11-12 17:51:06 · 294 阅读 · 1 评论 -
Java笔记十八——网络编程
TCP/IP协议泛指互联网协议,其中最重要的两个协议是TCP协议和IP协议。只有使用TCP/IP协议的计算机才能够联入互联网。原创 2020-11-12 11:22:26 · 323 阅读 · 0 评论 -
Java笔记十七——多线程
多线程基础多线程是java并发模型的一种计算机一个任务就是一个进程,浏览器,word,进程内部子任务就是线程,如word一边打字一边拼写检查。一个进程至少包含一个线程。进程和线程是包含关系,多任务既可以由多进程实现,也可以由单进程内的多线程实现,还可以混合多进程+多线程。和多线程相比,多进程的缺点在于:创建进程比创建线程开销大,尤其是在Windows系统上;进程间通信比线程间通信要慢,因为线程间通信就是读写同一个变量,速度很快。多进程的优点在于:多进程稳定性比多线程高,一个进程崩溃不会影响其原创 2020-11-09 21:01:15 · 161 阅读 · 0 评论 -
Java笔记十六——加密和安全
编码算法ASCII码就是一种编码,字母A的编码是十六进制的0x41,字母B是0x42,以此类推。而中文的中使用Unicode编码就是0x4e2d,使用UTF-8则需要3个字节编码。URL编码URL编码是浏览器发送数据给服务器时使用的编码,它通常附加在URL的参数部分,例如:https://www.baidu.com/s?wd=%E4%B8%AD%E6%96%87出于兼容性考虑,很多服务器只识别ASCII字符,URL中若包含中日文的话,就需要URL编码:如果字符是AZ,az,0~9以及-、_、原创 2020-11-06 17:07:58 · 273 阅读 · 1 评论 -
Java笔记十五——正则表达式
正则表达式简介学习正则表达式也可以参考这篇文章正则表达式30分钟入门正则表达式可以用字符串来描述规则,并用来匹配字符串,例如判断手机号,用正则表达式\d{11}:boolean isValidMobileNumber(String s) { return s.matches("\\d{11}");}Java标准库的java.util.regex包内置了正则表达式引擎。String regex = "20\\d\\d";匹配规则如果想匹配非ASCII字符,例如中文,那就用\u###原创 2020-11-06 11:41:24 · 171 阅读 · 0 评论 -
Java笔记十四——单元测试
测试框架JUnit编写JUnit测试单元测试——功能单元(方法)测试单元测试可以确保单个方法按照正确预期运行,如果修改了某个方法的代码,只需确保其对应的单元测试通过,即可认为改动正确。使用JUnit进行单元测试,使用断言(Assertion)来测试期望结果,可以方便地组织和运行测试,并方便地查看测试结果。Unit既可以直接在IDE中运行,也可以方便地集成到Maven这些自动化工具中运行。使用FixtureFixture的套路如下:1、对于实例变量,在@BeforeEach中初始化,在@Afte原创 2020-11-05 17:48:29 · 165 阅读 · 0 评论 -
Java笔记十三——日期和时间
基本概念日期:2019-11-20时间:12:30:59本地时间:不同时区同一时刻,本地时间不同夏令时时区:GMT/UTC+08:00表示东八区本地化:Locale由语言_国家的字母缩写构成。zh_CN表示中文+中国;en_US表示英文+美国通常使用Locale表示一个国家或地区的日期、时间、数字、货币等格式。Date和Calendar时间戳Epoch Time计算从1970年1月1日零点(格林威治时区/GMT+00:00)到现在所经历的秒数。例如1574208900表示从从1970原创 2020-11-05 14:56:27 · 201 阅读 · 0 评论 -
Java笔记十二——IO
IOIO即Input/Output,内存<——>外部(磁盘,网络等)交互InputStream / OutputStream是最基本的两种IO流IO流顺序读写,单向流动,以byte(字节)为最小单位。Reader/Writer读写的是字符,按照char读写,字符流传输的最小数据单位是charReader和Writer本质上是一个能自动编解码的InputStream和OutputStream。使用Reader,数据源虽然是字节,但我们读入的数据都是char类型的字符,原因是Reade原创 2020-11-04 18:03:30 · 211 阅读 · 0 评论 -
Java笔记十一——集合
CollectionCollectionJava标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包主要提供了以下三种类型的集合:List:一种有序列表的集合,例如,按索引排列的Student的List;Set:一种保证没有重复元素的集合,例如,所有无重复名称的Student的Set;Map:一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。原创 2020-11-03 15:43:59 · 258 阅读 · 2 评论 -
Java笔记十——泛型
泛型概述泛型就是定义一种模板,例如ArrayList<T>,然后在代码中为用到的类创建对应的ArrayList<类型>一次编写,万能匹配,又通过编译器保证类型安全(泛型只在编译阶段有效),这就是泛型。向上转型ArrayList<T>实现了List<T>接口,即即类型ArrayList可以向上转型为List。List<String> list = new ArrayList<String>();使用泛型泛型类最典型的就是各原创 2020-11-02 15:56:30 · 105 阅读 · 0 评论 -
Java笔记九——注解(Annotation)
使用注解注解是一种作用标注的特殊“元数据”,可以被编译器打包进入class文件,可以在编译、类加载、运行阶段被读取,并做相应处理。注解的分类编译器使用的注解例如@Override:让编译器检查该方法是否正确实现了重写。(看看你方法名打错没、参数列表正确与否啊,贴心小棉袄)。@SuppressWarnings:抑制编译器发生警告这类注解不会被编译进.class文件工具处理.class文件使用的注解工具加载类的时候做一些动态修改,会被编译进入.class文件,加载结束后注解不会存在于内存中,底原创 2020-10-26 19:01:22 · 355 阅读 · 0 评论 -
Java笔记八——反射
Class类class是JVM在执行过程中动态加载的。每加载一种class,创建一个class类型(这个类型的名字就是class)的唯一对象(实例/instance),并关联起来,该实例保存着该class的所有信息,包括类名、报名、父类、实现的接口、所有方法、字段等,可以通过该实例获得class对应的所有信息,这就叫反射,实例反射出class信息。获取class的class实例通过一个class的静态变量class获取Class cls = String.class;通过实例变量提供的getCl原创 2020-10-23 18:36:34 · 111 阅读 · 0 评论 -
Java笔记七——异常处理
Java的异常错误类型用户造成的:输入了不匹配的数据类型、程序想要读取文件时用户已经删除了随机出现、不可避免:断网无法连接服务器、没有打印机、内存耗尽Java语言内置了一套异常处理机制,总是用异常来处理错误异常是一种class,可以在任何地方跑出,只需要在上层捕获,异常继承机制如下:ErrorError表示严重错误OutOfMemoryError:内存耗尽NoClassDefFoundError:无法加载某个ClassStackOverflowError:栈溢出Excepti原创 2020-10-23 13:45:16 · 180 阅读 · 1 评论 -
Java笔记六——Java核心类
字符串和编码StringString是引用类型,它也是一个class,"…"表示一个字符串String s = "Hello!";String内部是通过一个char[ ]数组表示的String s = new String(new char[ ]{‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’} );`字符串比较比较字符串内容是否相同,必须用equal()方法而不能用==。Java字符串具有不可变性,字符串生成后就存放在常量池中,引用的指向可以改变,但是字符串内容不可变Strin原创 2020-10-22 20:34:51 · 195 阅读 · 0 评论 -
Java笔记五——包、作用域、内部类、classpath和jar、模块
包Java使用package解决类名冲突一个类总是属于某个包,真正的完整类名是包名.类名在定义class的时候,我们需要在第一行声明这个class属于哪个包。小明的Person.java文件:package ming; // 申明包名mingpublic class Person {}包没有父子关系。java.util和java.util.zip是不同的包,两者没有任何继承关系没有定义包名的class,它使用的是默认包,非常容易引起名字冲突,因此,不推荐不写包名的做法。按照包结构把jav原创 2020-10-22 11:36:02 · 451 阅读 · 0 评论 -
Java笔记四——java面向对象(封装、继承、多态、抽象)
面向对象基础创建Person类实例Person ming = new Person();在OOP中,class和instance是“模版”和“实例”的关系;定义class就是定义了一种数据类型,对应的instance是这种数据类型的实例;class定义的field,在每个instance都会拥有各自的field,且互不干扰;通过new操作符创建新的instance,然后用变量指向它,即可通过变量来引用这个instance;访问实例字段的方法是变量名.字段名;指向instance的变量都是引用原创 2020-10-21 17:43:47 · 261 阅读 · 0 评论 -
Java笔记二——java基础语法
java基础语法关键字标识符英文大小写、数字字符、$和_ 组成不能以数字开头不能是java关键字区分大小写常见命名规则包:类或者接口:HelloWorld方法和变量:studentName常量:全大写注释单行注释//多行注释/*注释内容*/文本注释/**注释内容*/常量整型常量 12;45小数常量 (所有小数) 14.75字符常量 ‘a’;‘A’布尔常量 true/falsenull变量定义格式数据类型 变量名 = 初始化值;数原创 2020-10-16 10:13:25 · 97 阅读 · 0 评论 -
Java笔记三——方法、字符字符串、数组
基本数据类型的封装自动装箱与拆箱8种基本数据类型对应的包装器Java 基本类型的包装类的大部分都实现了常量池技术,即 Byte,Short,Integer,Long,Character,Boolean;前面 4 种包装类默认创建了数值[-128,127] 的相应类型的缓存数据,Character创建了数值在[0,127]范围的缓存数据,Boolean 直接返回True Or False。如果超出对应范围仍然会去创建新的对象。两种浮点数类型的包装类 Float,Double 并没有实现常量池技术。原创 2020-10-19 16:03:01 · 163 阅读 · 0 评论 -
java笔记一——语言平台版本、环境配置
Java学习第一天@TOCjava语言平台版本J2SE标准版(javaSE)J2ME小型版J2EE企业版(javaEE) 针对Web应用程序开发Java语言特性之跨平台性java虚拟机(JVM)运行java字节码即可实现跨平台java开发环境安装——JDK下载安装通过官方网站获取JDKhttp://www.oracle.com安装:傻瓜式**注意:**安装路径最好不要有中文、特殊符号如空格等开发工具介绍Eclipse不多介绍,我用IDEAIntellij IDEA老原创 2020-10-15 08:06:23 · 129 阅读 · 0 评论