Java列表List类
List 列表
有序的Collection
允许重复元素
{1, 2, 4, {5, 2}, 1, 3}
List 的主要实现
ArrayList(非同步的)
LinkedList(非同步的)
Vector(同步的),Vector 几乎和ArrayList一样,除了Vector本身是同步的。
1. ArrayListArrayList是Java中应用最广泛的List实现类。
ArrayList
以数组实现的列表,不支持同步。
利用索引位置可以快速定位访问。
不适合指定位置的插入、删除操作。
适合变动不大,主要用于查询的数据。
和Java数组相比,其容量是可动态调整的。
ArrayList在元素填满容器时会自动扩充容器大小的50%。
下面是ArrayList操作的示例代码与输出结果,一些解释在注释中。
在下面的代码中,也对ArrayList的三种遍历方法进行了效率测试,结果可以看到,使用迭代器遍历最慢,其次是索引位置遍历,最快的是for-each遍历。
1234567891011121314151617181920212223242526272829303132333435 ...
Java JCF
JCF: Java collections framework,Java集合框架.
容器:能够存放数据的空间结构。
数组/多维数组,只能线性存放。
列表/散列表/树/……
容器框架:为表示和操作容器而规定的一种标准体系结构。
对外的接口:容器中所能存放的抽象数据类型。
接口的实现:可复用的数据结构。
算法:对数据的查找和排序。
容器框架的优点:提高数据存取率,避免程序员重复劳动。
典型的容器框架:C++的STL,Java的JCF。
1. JCF层级
可以看到上层结点都是接口,叶子结点都是实现类。
算法都是在实现类里面实现的。
上面结构中主要由三个分支,绿色、黄色和天蓝色分支(深蓝色基本上废弃了)。
绿色:List列表。
黄色:Set散列集。
天蓝色:Map映射。
额外的还有两个工具类,分别是Arrays和Collections,帮助我们实现一些数据结构里面的查找、排序等算法。
2. JCF的集合接口CollectionJCF集合接口Collection中有一些必须由实现类实现的抽象函数。
add() 增加一个元素;
contains() 检查是否包含一个元素;
re ...
Java中的时间类
Java中有多种时间相关的类。
java.util.Date(基本废弃,Deprecated)
java.util.Date中的getTime()方法还算常用,返回自1970-01-01 00:00:00以来的毫秒数。
1234Date d = new Date();System.out.println(d);System.out.println(d.getTime()); //the number of milliseconds since 1970.1.1 00:00:00
12Fri Mar 20 15:08:36 CST 20201584688116674
java.sql.Date(和数据库对应使用的时间类)
java.util.Calendar是目前程序中最常使用的,但是是抽象类,使用了简单的工厂模式。
Calendar.getInstance();返回的是GregorianCalendar对象
123456789101112131415import java.util.Calendar;import java.util.GregorianCal ...
Java中的字符串类
Java中有多个字符串类,其中最常用的是String类。
由于String类不可变,这在某些场合下可能会造成资源浪费,例如拼接字符串会产生很多无用的中间对象。所以有了两个可变的字符串类StringBuffer和StringBuilder,用于解决相关问题。
1. String类String类是Java中使用频率最高的类,是一个字符串类。
String对象是不可变对象,加减操作性能较差。
String类的常用方法
String类有一些比较重要的常用方法,如charAt(),concat(),contains(),endsWith(),equals(),equalsIgnoreCase(),hashCode(),indexOf(),length(),matches(),replace(),replaceAll,split(),startsWith(),substring(),trim(),valueOf()。
下面是这些常方法的示例代码和输出结果。
1234567891011121314151617181920212223242526272829303132333435363738pac ...
Java数字工具类
Java数字工具类java.lang.Math的几个常用函数。
12345678910111213141516package MathTest;public class MathTest { public static void main(String[] args) { System.out.println(Math.abs(-5)); //绝对值 System.out.println(Math.max(-5,-8)); //最大值 System.out.println(Math.min(-5,-8)); //最小值 System.out.println(Math.pow(-5,2)); //求幂 System.out.println(Math.round(3.5)); //四舍五入 System.out.println(Math.ceil(3.5)); //向上取整 System.out.println(Math.floor(3.5)); //向下取 ...
Java随机数类
Java中提供了两种主要的获取随机数的方法,分别是Random随机数类和Math.random()函数,其中Random随机数类更为常用。
Java中生成随机数的方法代码范例和输出结果如下。
1234567891011121314151617181920212223242526272829303132333435363738394041424344package Random;import java.util.Random;public class RandomTest { public static void main(String[] args) { //第一种办法,采用Random类 随机生成在一定范围内的随机数 Random rd = new Random(); System.out.println(rd.nextInt()); System.out.println(rd.nextInt(100)); //0--100的随机数 System.out.println(rd.ne ...
Java大数类(BigInteger和BigDecimal)
Java从5.0版本开始提供了两个大数类,BigInteger和BigDecimal。
大整数类BigInteger:支持无限大的整数运算。
大浮点数类BigDecimal:支持无限大的小数运算。注意精度和截断。
1. 大整数类BigInteger关于BigInteger大整数类的测试代码和输出结果如下。
12345678910111213141516171819202122232425262728package BigNumber;import java.math.BigInteger;public class BigIntegerTest { public static void main(String[] args) { BigInteger b1 = new BigInteger("123456789"); // 声明BigInteger对象 BigInteger b2 = new BigInteger("987654321"); // 声明BigInteger对象 ...
Java Servlet
1. 什么是Servlet?Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
2. Servlet的使用
创建普通的 java 类并继承 HttpServlet;
Override 方法 service();
在 service() 方法中书写逻辑代码;
在 web/WEB-INF/web.xml 中配置 servlet。
3. Servlet的运行流程浏览器发送请求到服务器,服务器根据请求 URL 地址中的 URI 信息在 webapps 目录下找到对应的项目文件夹,然后在 web.xml 中检索对应的 servlet,找到 ...
Tomcat入门
1. 什么是服务器?服务器就是代码编写的一个可以根据用户请求实时的调用执行对应的逻辑代码的一个容器。
服务器程序在普通用户看来就是一个安装在远程电脑上的应用程序。
我们只需要将服务器在操作系统上进行安装,并将我们事先编写好的逻辑处理代码根据规则放到服务器的指定位置,启动服务器,那么服务器就会自动根据接收到的请求调用并执行对象的逻辑代码进行处理。
2. Tomcat2.1. 安装与配置(MacOS)
下载
打开 Apache Tomcat 官网,选择你需要的版本的 Core 下 的 tar.gz 进行下载。
解压
把解压后的文件夹改名为 tomcat,放入 ~/Library/ 下。
设置权限
打开终端输入 sudo chmod 755 ~/Library/tomcat/bin/*.sh 设置权限。
启动
进入到 ~/Library/tomcat/bin/ 目录下,输入 sudo sh startup.sh。
或直接在 ~ 目录输入 sudo sh ~/Library/tomcat/bin/startup.sh。
验证是否启动
在浏览器中输入 http://l ...
HTTP 协议
1. HTTP的特点无连接,无状态,可传输任何类型数据。
HTTP1.1 版本后支持可持续连接。
2. HTTP的交互流程HTTP 的交互流程一般分为四个步骤(一次完整的请求)
客户端和服务端建立连接;
客户端发送求送数据到服务端(遵循 HTTP 协议);
服务端处理客户端请求,响应客户端(遵循 HTTP 协议);
关闭客户端和服务端的连接(HTTP1.1 后不会立即关闭)。
3. HTTP的请求格式
4. HTTP的请求方法
Methods
Functions
Versions
GET
请求指定的页面信息,返回实体主体
1.0
HEAD
类似 GET 请求,只不过返回的响应中没有具体内容,用于获取报头
1.0
POST
向指定资源提交数据进行处理请求(例如提交表单或上传文件)。数据被包含在请求体中。POST 请求可能导致新的资源建立和已有资源的修改。
1.0
PUT
从客户端向服务器传送的数据取代指定文档的内容
1.1
CONNECT
HTTP1.1 中预留给能够将连接改为管道方式的代理服务器
1.1
OPTIONS
允许客户端查看服务器性能
...