前言
IO(绝对重点)、 集合(ArrayList 和 HashMap)、多线程(回顾概念即可)、数据库(JDBC、 DAO)和前端(HTML、jQuery)
一、IO是什么?
I表示input O表示output
1、流的分类
读取流:InputStream Reader
写出流:OutPutStream Writer
字节流:InputStream OutputStream
字符流:Reader Writer
字节流代码如下(示例):
FileOutputStream fos = new FileOutputStream("D://xxx.xxx");
fos.write("dsfdsf".getBytes());//写入字节数组
fos.close(); //用完后需要关闭流,释放资源。字节流不需要Flush
FileInputStream fis = new FileInputStream("D://xxx.xxx");
fis.read(); //读取一个字节
fis.close();
字符流代码如下(示例):
FileWriter fw = new FileWriter("D:\\xxx.txt");
fw.write("sdfsdfsdf");//可以直接写入字符串
fw.flush(); //写完后需要Flush,才能真正写道输出设备
fw.close(); //close()时也会Flush。
FileReader fr = new FileReader("D:\\xxx.txt");
fr.read(char[] ch);//可以读取一个字符数组的内容
fr.close();
二、集合
集合和数组的区别:
(1)数组长度的是固定的,集合的长度是可变的。
(2)数组中存储的都是同一类型的元素。集合存储的都是对象,对象的类型可以不一致。
1.collection
单列集合类的根接口
(1)List常用子类(ArrayList)
ArrayList List = new ArrayList;
1.删除方法 list.remove();
2.添加方法 list.add();
3.清空ArrayList list.clear();
4.修改方法 list.set(2,“B”);
5.查询方法
//获取第二个元素
String element = list.get(2);
2.Map
(1)Map接口常用的实现类之一:HashMap
HashMap是Map接口使用频率最高的实现类。允许使用null键和null值,与HashSet一样,不保证映射的顺序。
所有的key构成的集合是Set:无序的、不可重复的。所以,key所在的类要重写:equals()和hashCode()
所有的value构成的集合是Collection:无序的、可以重复的。所以,value所在的类要重写:equals()
HashMap判断两个key相等的标准是:两个key通过equals() 方法返回true, hashCode值也相等。
HashMap判断两个value相等的标准是:两个value通过equals()方法返回true。
HashMap可以使用null值为key或value
三、多线程
1.线程与进程
进程
是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间
线程
是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少有一个线程
线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程
2.同步与异步
同步
排队执行 , 效率低但是安全。
异步
同时执行 , 效率高但是数据不安全.
3.并发和并行
并发
指两个或多个事件在同一个时间段内发生。
并行
指两个或多个事件在同一时刻发生(同时发生)。
四、数据库
1.创建数据库
代码如下(示例):
-- 创建用户表
create table user(
name varchar(20),
age int,
sex char(1)
)engine=innodb default charset=utf8;
-- Query OK, 0 rows affected (0.16 sec)
2.增删改查
(1)增
insert into user(name,sex,age) value("张三", "男",18 );
(2) 删
delete from user where age=18;
(3)改
update user set sex="man" where id =2;
(4)查询
select * from user where age=18;
[group by 分组字段 [having 分组条件]]
[order by 排序字段 排序规则]
Asc升序排列(默认)
desc降序排列
1.Like
-- 查询name字段中最后一个字符 为 五的
select * from users where name like '%五';
-- 查询name字段中第一个字符 为 王 的
select * from users where name like '王%';
-- 使用 _ 单个的下划线。表示一个任意字符,使用和%类似
-- 查询表中 name 字段为两个字符的数据
select * from users where name like '__';
-- 查询 name 字段最后为五,的两个字符的数据
select * from users where name like '_五';
2.mysql中常用的统计函数
max(),min(),count(),sum(),avg()
JDBC
基础操作
package com.java.demom;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class demo01 {
public static void createTable() throws ClassNotFoundException, SQLException {
//加载数据库驱动
Class.forName("com.jdbc.mysql.Driver");
//连接JDBC
Connection conn = DriverManager.getConnection("","","");
// mysql的连接地址: jdbc:mysql://localhost:3306/java35
//通过statement创建SQL执行对象
Statement state = conn.createStatement();
//创建SQL语句
state.execute("create table person(id int,nickname varchar )");
//释放连接
conn.close();
state.close();
System.out.println("执行完毕");
}
public static void insertData(){
}
}
五、HTML与JQuery
一、前端
点名器实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>随机点名器</title>
<style>
#kk{
background-color: burlywood;
border-radius:20px;
height: 500px;
width: 500px;
position: absolute;
}
#a{
text-align: center;
border:1px black solid;
height: 60px;
width: 100px;
position: relative;
top:40%;
left:40%;
}
#b{
text-align: center;
height: 20px;
width: 50px;
position: relative;
top:60%;
left:45%;
}
#c{
background-color: red;
}
</style>
</head>
<body>
<div id="kk">
<div id="a">
<p>随机点名器</p>
</div>
<div id="b">
<button id="c" onclick="pickName()">开始</button>
</div>
</div>
</body>
<script>
var interval;
function pickName(){
var btn=document.getElementById("c");
var btn_text = btn.innerText;
if(btn_text==="开始"){
start();
btn.innerText="停止";
}
if(btn_text==="停止"){
stop();
btn.innerText="开始";
}
}
function start(){
interval = setInterval(setName,200);
}
function stop(){
clearInterval(interval);
}
function setName(){
let text = document.getElementById("a");
var array=["张三","李四","王五","二麻子","赵柳","杨过","罗勇"];
var index = parseInt(Math.random()*array.length);
text.innerText=array[index];
}
</script>
</html>
二、JQuery
jq的使用
$(function () {
var index = 0;
showDot(0);
start();
function showPic(index) {
$("#pics").css("margin-left", -index * 590 + "px");
}
function showDot(index) {
$(".dot").each(function () {
$(this).css("background-color", "red");
$(this).css("color", "white");
})
$(".dot").eq(index).css("background-color", "blue");
$(".dot").eq(index).css("color", "pink");
}
//上一张图片
function last_pic() {
index--;
if (index < 0) {
index = 5;
}
showPic(index);
showDot(index);
}
function next_pic() {
index++;
if (index > 5) {
index = 0;
}
showPic(index);
showDot(index);
}
$(".btn_left").click(function () {
last_pic();
});
$(".btn_right").click(function () {
next_pic();
});
function start() {
$("body").everyTime("1s", "lbt", function () {
next_pic();
})
}
$(".wrapper").mouseover(function () {
$("body").stopTime("lbt");
});
$(".wrapper").mouseleave(function () {
start();
});
$(".dot").hover(function () {
index = $(this).index();
showPic(index);
showDot(index);
})
})
总结
本文仅仅简单介绍了javaWEB的基础,后续会不断更新完善。新手上路,求多指教。