注解和反射
注解Java5.0发布
java.Annotation
由来
定义方式
使用方法
JDK5定义的Annotation注解
注解:可以在不影响java源程序的情况下,通过标注的方式在类、方法、属性上起到一定的作用;然后通过一些解析工具(比如反射)对其解析,然后实行特定功能。
常见的注解@Override
标注在方法上,为子类重写父类的方法;检查是否为重写方法
@Deprecated
标注在任何地方(类、属性、方法、构造器、包…),表示被标注的元素为过时的(不推荐使用)
@SuppressWarnings
忽略编译期间的警告(泛型未定义、变量未使用)
自定义注解123456789101112131415161718192021public @interface 注解名 {}//自定义注解public class App { @MyAnnotation(name = "sen",age = 18) public void test1() { System.out.println("Hello Wo ...
HTML和XML
HTML和XMLhtml和xml都属于SGML(标准通用标记语言)的分支
html–程序型标记(html5不属于SGML)
xml–描述型语言(1998成为标准)
两者都是W3C维护
XMLxml:Extensible Markup Language,可扩展标记语言,xml只代表数据本身,而不包含任何样式,所以也称为一种描述语言
xml的作用
实现不同平台之间的数据交互(webservice)
xml可以用于一些应用程序的配置文件(tomcat、servlet、web.xml)
xml的作用
xml指令:<?xml version=”1.0” encoding=”UTF-8”>
文档类型定义<!DOCTYPE>
文档元素部分
xml指令主要描述xml版本(目前只有1.0),编码,文档是否定义为一个独立的文件。
文档类型(DTD,XSD):规范文档中允许出现的标记,属性,以及标记之间的关系。
文档内容构成部分:标签、属性、文本。规范:标记必须成对出现,严格区分大小写
DOM解析需要将被解析的文档完整的加载到内存中,解析为一颗倒置的树,可以通 ...
项目搭建
项目搭建流程1、需求分析2、新建数据库3、搭建项目①、Tomcat②、jar③、配置文件④、导入页面⑤、java目录 com.工程名称.模块名称.dto
.dao
.daoImp
.service
.serviceImp
.servlet
.fifter
⑥、测试搭建项目1、需求#### ①用户
对用户进行注册,登录,安全退出,修改个人信息,删除个人信息,查询个人信息
身份:
游客:能够访问那些页面,index,注册,登录
会员:功能,安全退出,修改个人信息,删除个人信息,查询个人信息
管理员:修改个人信息,删除个人信息,查询个人信息
查询所有会员信息并操作
②、商品 添加页面
展示所有页面
添加到购物车
生成订单—支付
表结构
2、建项目①、建表
jsp笔记
JSPJSP=HTML+Java (java server pages):在服务器上运行的页面
注释123<!-- 注释内容 --> JSP的显示注释<%-- 注释内容 --%> JSP的隐藏注释
Java的书写12345<% %> JSP中插入Java代码(不能写方法) <%! %> JSP声明:静态块、变量、方法<%= %> JSP表达式 :向页面输出内容(等价于out.println();)
三个指令①、page指令 <%@ page 属性=”值” … %> 属性1:import=”java.util., java.io.“; 导包 属性2:pageEncoding 告诉JSP引擎要翻译的文件使用的编码方式 属性3:contentType 声明当前文件的类型及编码方式 ,等同于(服务器响应给用户的数据的编码方式)-response.setContentType(“text/html;c ...
综合笔记
标识符 字母、数字、_、$
1、数字不能开头
2、区分大小写
3、不能是关键字
4、不能有空格
5、长度不限,见名知意
6、驼峰式起名(类名每个单词首字母大写、变量名首字母小写之后每个单词首字母大写)
数据类型 数据类型:简单数据类型 和 引用数据类型(复合类型)
简单数据类型:四类八种
数值型:整型:byte、short、int、long 浮点型: float、double
字符型:char ‘ ‘
布尔型:boolean – true/false
引用数据类型:类、集合、数组…
字符串:String “ ”
变量常量 变量:在程序运行过程中值可以发生改变的量,在同一作用域范围内不能重复定义(全局变量和局部变量)
作用域:大括号开始到大括号结束
全局变量:定义在类里面,函数外面的变量
局部变量:定义在函数里面的变量
常量:用final修饰的,标识符所有字母全部大写的,且在程序运行过程中值不能发生改变的量
final:最终的意思
转义字 ...
网络
网络概述分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模宏大、功能强大的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。
网络通信要素1. IP & 端口号1.1 IP网络中主机的唯一标识,通过Ip可以定位到主机位置
1.2 端口号用于标识当前主机上运行的进程
2.网络协议2.1 TCP
使用之前需要建立TCP连接,形成传输通道
传输前采用“三次握手”方式,点对点通信,可靠性高
可进行大数据量传输
传输完毕要释放连接
2.2 UDP
不需要建立连接
发送数据是以报文形式,将数据封装成数据包
发送数据时不需要去人对方是否整备好,以及接收到后也不确认,不可靠
发送完不需要释放资源,开销小,效率快
java中的网络1234InetAddress address1 = InetAddress.getByName("192.168.2.1");System.out.println(address1.getHostAddress()); // 获取ipSystem.out.println(address1.get ...
多线程
java程序中会默认存在的三个线程
main方法:主线程
GC(垃圾回收机制,回收不用的垃圾内容数据)
异常处理机制
线程的创建和使用创建线程的方式
继承Thread类
实现Runable接口
实现CallBack接口
线程池
Thread类继承Thread类,那么Talk1这个类就是一个线程类
12345678910111213141516171819202122public class Talk1 extends Thread { /* *run方法,线程体,也就是当前线程需要执行的任务 *线程启动后,系统会调用run方法 * @see java.lang.Thread#run() */ @Override public void run() { while(true) { // 获取线程的名字 System.out.println(Thread.currentThread().getName()); System.out.println(getName()); System.out.println("小红, ...
泛型
泛型:类型的参数化。就是定义类、接口时,可以将要使用到的某个数据类型定义成一个参数,在真正使用类或接口时再去确定
如果泛型类使用么有指定的类型,那么泛型将为Object类型
实现泛型接口,并且确定泛型的类型,这样这个类就不是泛型类
定义一个子类继承泛型接口或者泛型类时,泛型的类型依旧不能确定,那么就得在子类上再次定义泛型,表示在使用子类时去明确泛型的类型,这样子类就是泛型类
泛型类、接口,泛型的个数可以有多个,用逗号隔开
泛型方法
注意:不能创建泛型数组,T[] t = new T[5]; 编译不通过
泛型类泛型类,尖括号中是一个类型的参数,在使用类时再明确具体的类型
泛型类中可以使用这个类型的参数
123456789101112131415161718192021222324public class Data<T> { String name; int age; // 给属性声明为T类型 T x; public Data(String name,int age,T x) { this.name = name; this.age = a ...
集合
Java的集合框架:
Collection接口:
List:里面存放的数据是有序的,并且数据是可重复的
ArrayList:动态数组,顺序存储,遍历、添加(添加到末尾,非插入)效率较高
LinkedList:链式结构,插入、删除效率高,遍历查找效率低
Vector:动态数组,比较老的集合结构,一般很少使用
Set:里面的数据是无序的,不可重复的
HashSet:主要的实现类,无序不代表随机
LinkedHashSet : 是在原有的基础上底层通过一个链表进行维护,遍历效率会有提升
若经常对set进行遍历操作,可以采用LinkedHashSet
TreeSet:TreeSet中存放的数据可以进行排序(Comparable Comparator)
TreeSet中存放的对象必须实现Comparable
TreeSet中是不能存放空对象的 !!!
Map接口:Map中存放的数据都是一对一对的,里面有一个叫做key,另外一个叫做value,键值对
HashMap:主要实现类,map中数据也是无序的,线程不安全,但是效率高
TreeMap:可以排序的 ...
IO
对于数据的读写操作时,有不同的输入输出对象,Java中是将其当做流的形式来看待。
流(stream)的理解,Stream是从起源(source)到接收(sink)的有序数据
流的分类
数据的输入输出(数据的流向,以程序为中心看待)
输入流
输出流
按照操作数据的单位
字节流:每次读写数据是以一个字节为单位
字符流:每次读写数据是以一个字符(2个字节)为单位
节点流、处理流
节点流:就是直接建立的一种流,没有任何包装的
处理流:在节点流基础上进行包装后的流
字节流输入:FileInputStream输出:FileOutputStream
1234567891011121314int read() 从该输入流读取一个字节的数据,返回-1表示读完了。 int read(byte[] b) 从该输入流读取最多 b.length个字节的数据为字节数组,返回读取的字节个数,返回-1表示读完了。 void write(byte[] b) 将 b.length个字节从指定的字节数组写入此文件输出流。 void write(byte[] b, int off, int len) 将 ...