![](https://img-blog.csdnimg.cn/20210924204859994.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java学习
文章平均质量分 65
扎实学习Java语言的自我记录
christangdt
数学IT爱好/网球迷/靠金融过活
展开
-
20.加密与算法
加密与算法计算机加密技术就是为了实现上述目标,而现代计算机密码学理论是建立在严格的数学理论基础上的,密码学已经逐渐发展成一门科学。对于绝大多数开发者来说,设计一个安全的加密算法非常困难,验证一个加密算法是否安全更加困难,当前被认为安全的加密算法仅仅是迄今为止尚未被攻破。不要自己设计山寨的加密算法;不要自己实现已有的加密算法;不要自己修改已有的加密算法。编码算法URL编码和Base64编码都是编码算法,但不是加密算法URL编码URL编码是浏览器发送数据给服务器时使用的编码,它通常附加在UR原创 2021-10-18 17:41:00 · 106 阅读 · 0 评论 -
19.正则表达式
正则表达式正则表达式可以用字符串来描述规则,并用来匹配字符串,使用正则表达式可以快速判断给定的字符串是否符合匹配规则。正则表达式是一套标准,可以用于任何语言。Java标准库的java.util.regex包内置了正则表达式引擎匹配规则正则表达式的匹配规则是从左到右按规则匹配。对于正则表达式abc来说,它只能精确地匹配字符串"abc",不能匹配"ab",“Abc”,“abcd"等其他任何字符串。如果正则表达式有特殊字符,就需要用\转义正则表达式在Java代码中也是一个字符串,正则表达式a&原创 2021-10-16 16:42:01 · 187 阅读 · 0 评论 -
18.单元测试
单元测试单元测试是针对最小的功能单元编写测试代码Java程序最小的功能单元是方法,对Java程序进行单元测试就是针对单个Java方法的测试测试驱动开发TDD是一种根据功能实现代码的开发模式JUnitJava平台最常用的测试框架JUnit是一个开源的Java语言的单元测试框架,专门针对Java设计,使用最广泛编写了一个xxx.java文件后,我们想对其进行测试,需要编写一个对应的xxxTest.java文件,以Test为后缀是一个惯例,并分别将其放入src和test目录中一个JUnit测试包含若原创 2021-10-15 11:42:00 · 124 阅读 · 0 评论 -
17.日期时间
日期和时间Epoch Time是计算从1970年1月1日零点(格林威治时区/GMT+00:00)到现在所经历的秒数,又称为时间戳,在Java程序中,时间戳通常是用long表示的毫秒数Java标准库有两套处理日期和时间的API:一套定义在java.util这个包里面,主要包括Date、Calendar和TimeZone这几个类;一套新的API是在Java 8引入的,定义在java.time这个包里面,主要包括LocalDateTime、ZonedDateTime、ZoneId等。旧APIDat原创 2021-10-15 10:09:09 · 127 阅读 · 0 评论 -
16.IO流
IO流Java的标准库java.io提供了File对象来操作文件和目录。构造File对象,需要传入文件路径File对象有3种形式表示的路径:一种是getPath(),返回构造方法传入的路径一种是getAbsolutePath(),返回绝对路径一种是getCanonicalPath,它和绝对路径类似,但是返回的是规范路径File对象既可以表示文件,也可以表示目录。构造一个File对象,即使传入的文件或目录不存在,代码也不会出错构造一个File对象,并不会导致任何磁盘操作;只有当调用File对原创 2021-10-09 13:27:38 · 266 阅读 · 0 评论 -
15.集合
集合Collection集合类型是Java标准库中被使用最多的类型,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,则把这种Java对象称为集合Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包主要提供了以下三种类型的集合:List:一种有序列表的集合,例如,按索引排列的Student的ListSet:一种保证没有重复元素的集合,例如,所有无重复名称的Student的SetM原创 2021-10-05 15:38:06 · 129 阅读 · 0 评论 -
14.泛型
泛型泛型是定义一种模板,例如ArrayList,然后在代码中为用到的类创建对应的ArrayList<类型>,由编译器针对类型作检查,既实现了编写一次,万能匹配,又通过编译器保证了类型安全。泛型是编写模板代码来适应任意类型;泛型的好处是使用时不必对类型进行强制转换,它通过编译器对类型进行检查本质是参数化类型,将原来具体类型参数化,在使用/调用时传入具体类型泛型类、泛型方法和泛型接口泛型类:class XXX {}示例:public class Generic <T>{原创 2021-09-29 16:15:02 · 72 阅读 · 0 评论 -
13. 注解Annotation
注解注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”,可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”注解类型常用的两类注解:编译器使用,例如@Override,@SuppressWarning程序运行期能够读取的注解,在加载后一直存在于JVM中。例如,一个配置了@PostConstruct的方法会在调用构造方法后自动被调用(这是Java代码读取该注解实现的功能,JVM并不会识别该注解)注解的配置参数配置参数可以包括:所有基本类型;String原创 2021-09-25 22:04:35 · 105 阅读 · 0 评论 -
12.反射Reflection
反射在运行时获取一个类的变量和方法信息,然后通过获取到的信息来创建对象、调用方法通过运行期对对象实例的操作,拿到该实例对象的信息(如类、属性、方法等)可以增强程序灵活性反射的实现基础Class类的存在,由于JVM的动态加载,会在读取到某一种class时才加载,生成.class文件,每一个Class实例都指向一个class或interface,此即类加载器获取Class类对象1.类的class属性2.调用getClass()方法3.Class类的static方法 forName(String原创 2021-09-25 22:03:51 · 69 阅读 · 0 评论 -
11.异常Exception
异常Exception,Java在语言层面上的错误处理机制异常的体系#mermaid-svg-ULoXsNQ9whfUMoaA .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ULoXsNQ9whfUMoaA .label text{fill:#333}#mermaid-svg-ULoXsNQ9whfUMo原创 2021-09-25 22:03:07 · 73 阅读 · 0 评论 -
10.常用API
常用API包装类基本类型包装类,存在自动装箱和自动拆箱机制时间日期类Date类,代表一个特定时间(毫秒单位),方法是Date.getTime和Date.setTimeSimpleDateFormat类,格式化和解析日期,主要方法是format和parseCalendar类,转换日期和操作日期(加减),构造对象用getInstance(),主要方法有get,add和set,例如public class CalendarDemo{ public static void main(Strin原创 2021-09-24 20:57:54 · 98 阅读 · 0 评论 -
9.内部类
内部类内部类是在一个类里定义另一个类内部类可以直接访问外部类的成员,包括私有,外部类要访问内部类的成员必须创建对象public class Outer{ private int num = 10; public class Inner{ public void show() { System.out.println(num); } } public void method() { Inner i =原创 2021-09-24 20:55:26 · 149 阅读 · 0 评论 -
8.多态&抽象类&接口
多态&抽象类&接口多态定义同一个对象在不同时刻表现出的不同形态前提是有extends或implement,有override,父类引用指向子类对象成员变量:编译、运行都看父类,成员方法:编译看父类(左边),运行看子类(右边)多态优劣势优势是提高程序扩展性(动态调用),劣势是不能用子类的特有成员转型upcasting:父类引用指向子类对象,是安全的downcasting:子类引用指向父类对象,不安全抽象类没有方法体,abstract的,只能通过子类对象实例化,子类需要ov原创 2021-09-24 20:54:41 · 73 阅读 · 0 评论 -
7.修饰符
修饰符package包的概念,包就是文件夹定义:package name,name用域名倒序比较多import导包,形如import java.util.Scanner和python很类似权限修饰符public,private,protected和缺省修饰符同一个类同一个包的其他类不同包的子类不同包的无关类private√默认√√protected√√√public√√√√final代表最终,不能exten原创 2021-09-24 20:54:15 · 45 阅读 · 0 评论 -
6.继承extends
继承继承的实现继承是面向对象三大特征知意,可以使得子类具有父类的属性和方法,可以在子类中追加属性和方法通过extends实现子类可以使用父类的非私有成员Java支持多层继承,但不支持多重继承(interface可以多个implement,但class只能extend一个)继承的优劣势优势是提高代码的复用性和维护性,劣势是类的耦合性增强导致子类独立性削弱使用继承需要考虑类与类之间是否有is…a的关系继承中变量的访问就近原则:子类局部范围->子类成员范围->父类成员范围->原创 2021-09-24 20:53:38 · 98 阅读 · 0 评论 -
5.面向对象基础
面向对象基础类和对象类是对一类事物的描述,抽象的、概念上的对象是事物的个体,也称为实例Instance面向对象的设计重点是类的设计,类的设计其实是类的成员的设计成员是什么?属性(对应成员变量)、行为(对应成员方法)域、字段 = Field = 属性 = 成员变量Method = (成员)方法 = 函数类和对象的使用创建类、设计类的成员创建类的对象通过“对象.属性”或者“对象.方法"调用对象的结构一个类的多个对象,每个对象都有一套自己的非static属性局部变量一定要显式赋值,加载到原创 2021-09-24 20:52:55 · 59 阅读 · 0 评论 -
4.数组学习
数组数组的主要问题定义、初始化、遍历、内存存储引用变量数组内存的是地址,基本变量数组内存的是值自己造数组的少,集合里很多数组数组中的算法1.数组元素赋值2.数值型数组的计算3.数组的复制、反转、查找(线性查找、二分查找)4.数组排序(冒泡排序、快速排序)数组复制:要先new出一个新数组,再通过遍历来复制反转:头尾交换、第二个和倒数第二个交换,循环条件是length/2查找:线性查找(从前往后一个个找)二分法查找(折半查找),前提是数组数据要有序(没有就得先排序),实现方法是首索原创 2021-09-24 20:52:25 · 96 阅读 · 0 评论 -
3.Java基本语法
Java基本语法Java名称命名规范包名:xxxyyyzzz类名、接口名:XxxYyyZzz(大驼峰)变量名、方法名:xxxYyyZzz(小驼峰)常量名:XXX_YYY_ZZZ起名字要“见名知意”,不建议用汉字变量包含变量类型、变量名和存储的值变量类型:基本类型(数值型整数byte,short,int,long,float;数值型浮点float,double),字符型char,布尔型boolean引用类型(类class,接口interface,数组array)long型的声明或初始原创 2021-09-24 20:51:50 · 72 阅读 · 0 评论 -
2.Java语言概述
Java语言概述Java学科脉络第一阶段:JavaSE包含Java,MySQL和SQL语言,JDBC第二阶段:JavaWeb包含HTML与CSS,JavaScript DOM与jQuery,XML与Tomcat(服务器),HTTP协议,服务器端组件Servlet,JSP,异步数据传输框架Ajax第三阶段:JavaEE框架系统开发中真正要用的,包括系统整体分层解耦框架spring,轻量级Web框架springmvc,轻量级持久层框架mybatis,服务器操作系统Linux,内存数据库Redis,原创 2021-09-24 20:50:52 · 4910 阅读 · 0 评论 -
1.编程入门
编程入门入门概述软件:提供指令,控制硬件并使硬件完成特定任务。程序设计语言:没有“最好”的语言,需要尽可能掌握各种不同的程序语言。关键是学习如何使用程序设计方法解决问题计算机硬件CPU,内存,存储设备(硬盘),输入,输出,通信,这几部分通过总线(bus)联接起来,总线搭在主板上冯诺伊曼体系结构是现代计算机的基础行业发展的三个定律:摩尔定律:每18-24个月集成晶体管数量翻一倍安迪-比尔定律:What Andy gives, Bill takes away反摩尔定律:IT公司需要不断更新原创 2021-09-24 20:50:09 · 144 阅读 · 0 评论