1 Star 0 Fork 0

阿伟 / JavaSE

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

JavaSE

记录学习过程 IDEA快捷键 Shift两次: 包含各种文件、方法的搜索 Ctrl+Shift+F: 根据输入内容查找整个项目 或 指定目录内文件 Ctrl + Shift + R 根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 Alt+Enter:快速修复一些错误 Shift+F6:文件、变量、方法重命名: Ctrl+D: 复制当前行到下一行 Ctrl+X 剪切光标所在行, 也可以当删除 Ctrl+C 复制文件,如果在文件里面粘贴是粘贴文件名字,在硬盘位置粘贴是文件 Shift+Enter: 在光标所在行下一行插入代码 Ctrl + Alt + L 格式化代码,可以对当前文件和整个包目录使用

Ctrl+Shift+向上、向下箭头 光标所在这一行上移或者下移 Ctrl + Alt +← :上一个下一个操作切换 Alt+F7 : 方法、变量哪里被使用过 Ctrl + F12 :文件的结构列出变量和方法 Ctrl+Alt+V : 光标在方法上,自动生成方法的返回值 Ctrl + Shift + U:切换大小写 Ctrl+H: 类的继承关系 F2 反向 Shift+F2:快速定位错误

Ctrl+C还可以复制光标所在的行 Ctrl+Shift+C 赋值文件的路径 Ctrl+Shift+V 可以列出来很多的复制的历史 Ctrl + P 方法参数提示显示

Ctrl + U 前往当前光标所在的方法的父类的方法 / 接口定义 Shift + ↑、Shift + ↓、Shift + ←、Shift + →。 作用:上下左右移动光标并选中内容。 Ctrl + W 递进式选择代码块 Ctrl + Alt +T 作用:将代码包在一块内,如 try…catch、if else 等。 Ctrl + Shift + 左键单击 : 把光标放在某个类变量上,按此快捷键可以直接定位到该类中

Ctrl+E : 列出最近操作的文件 Recent File

鼠标选中大段代码:点一下起始位置,然后按住Shift键,在结束为止点一下

左侧Project和右侧编辑区域跳转: 编辑区-->Project Alt+1 Project-->编辑区 Esc

光标移到行首 Home (+ Shift, 并选中) 光标移到行尾 End (+ Shift, 并选择)

Ctrl + [ 移动光标到当前所在代码的花括号开始位置 查看类的继承结构: 1、右键Diagrams 图形展示 2、Type Hierarchy : F4

标识符:(变量) 1、不能用关键字 2、由字母、数字、下划线、$组成,但是不能以数字开头 给变量起名字的时候要起有意义的名字:“见名知意”

@Test 测试注解 数据类型转换: 1、从小到大自动类型转换 2、从大到小需要强制类型转换,可能会丢失精度(装水的杯子大小不一样) byte->short(char)->int->long->float->double

>   <    >=     <=    !=

比较之后的结果只有两种情况:true、false,所以比较运算的结果是boolean类型 三目运算符 int max1 = num1 >= num2 ? num1 : num2; 死循环 后面的代码永远不会执行 while(ture){} for(;;){}

for(1;2;4){3} 执行顺序 1234234234234

continue:跳出本次循环,继续下一次循环 break:跳出离他最近的那层循环

双重for循环: 外层循环控制行数,数一下有几行就能确定外层循环。 内层循环控制列数,这一行打印多少个,到底要打印多少个要找出和当前行之间的一个关系。

UML图 +public #protected -private

1、如果不写任何构造方法,系统默认提供一个无参数构造方法,只是我们看不到而已。 2、如果自己写了任何一个构造方法,不管有参没参,系统就不会提供这个默认无参构造方法。 3、自己写了一个带参数的构造方法,就要把无参数构造方法也要写上。 (后面使用或者学习的一些框架要new这个无参数的构造方法) 构造方法和一般方法的不同: 1、构造方法是在new对象的时候运行,而一般的方法是在对象调用的时候才执行。 2、一个对象的建立,构造方法只执行一次,而一般方法可以被改对象调用多次。

不写,java默认加上: 1、无参构造方法 2、一个类不继承任何一个类默认继承extends Object 3、在类的构造方法第一句默认会加上super()

this:代表当前类的对象 this.id=id super:代表父类对象 this():调用当前类的无参构造方法 super():调用父类无参构造方法

1.继承是严格的父子关系,你继承什么你就是什么:鸽子就是鸟。 父类是抽取了所有子类的共同特征,父类里面的属性和方法是所有子类所共有的属性和方法。 2.接口是一个标准,一般用在能不能具有某个功能。 把能不能飞定义称为一个接口IFly,实现了这个接口的类就具有了这个功能。

变量名(引用)放在栈里面,指向的对象放在堆里面,变量通过存储的地址值找到堆里面的对象。

多态 面向接口(抽象)编程 对修改封闭,对扩展开放(开闭原则) 多态存在的三个必要条件 继承 重写 父类引用指向子类对象

toCharArray() 将此字符串转换成一个新的字符数组 String str = new String(char[] values) 分配一个新的String,使其表示字符数组中参数中当前包含的字符序列
将char类型的数组转换成字符串格式

set 无序不重复 拿出来的顺序可能不一样 list 有序可重复 map 映射关系 hash map 无序

Collection中的集合称为单列集合,Map中的集合称为双列集合。

Map集合不能使用迭代器或者foreach进行遍历 但是转换成Set之后就可以使用了

primary key 主键 不能重复 唯一确定的一条记录 unique+not null 唯一+ 非空

auto_increment 自动增长

列出所有的数据库 show database 创建数据库 create database study default character set utf8; 删除数据库 drop database study

数据库表操作 切换数据库 use study 创建表 create table student(int id ,name char(10),age int,gender char(1)); 查看所有表 show tables; 查看表结构 desc student 删除表 drop table student

更改表的结构 添加字段 alter table student add column address char(10); 删除字段 alter table student drop column address; 修改表的字段 alter table student change address addr char(20); 修改表的名字 alter table student rename to stu

创建表create table student(id int primary key auto_increment,name varchar(10),age int,gender char(1)) *代表查询所有的列 select * from student

插入数据 insert into student(id,name,age,gender) values (1,'wangwu',23,’男‘) 插入部分字段值 insert into student(name,age,gender)values('小郑',23,'男') 插入多条数据 insert into student(id,name,age,gender) values (1,'wangwu',23,’男‘),(2,'小郑',23,'男')

修改数据 update student set age = age + 1 update student set age = age + 1,name = 'zhangsan',where id = 7

删除数据 delete from student 删除表中所有数据 delete from student where age = 23 所有age是23的数据都删除了 可能有多条 delete from student where id = 1 因为id主键是唯一的,所以根据id删除只能删除一条 truncate删除表里所有的数据,自增的id会重新初始化为初始值1 truncate table student

查询数据 select * from student select id,name,age as '年龄','java2403' as '班级' from student select id,'name',(php+java) as '总成绩' from student 查询时会去掉重复的记录 select distinct assress from studnet;

逻辑条件 and(同时成立) or(只要有一个成立)

比较运算 > < >= <= != 不等于也可以写成呢<> address 地址 聚合查询 sum() 总成绩 avg() 平均值 max() min() count() 统计数量 select count(address) as '总人数' from student; 如果指定列名,则count会忽略指定列的值为null的行,用*则不忽略

查询语句 order by 字段 asc/desc 默认是asc升序 可以不写 select * from student order by php select * from student order by php asc select * from student order by php desc 多个条件排序 -- 需求:先按照php降序,Java升序(整体是按照php降序,如果php相同的数据再按照Java标准排序) select * from student order by php desc,java asc; -- order by要放在sql语句的最后

分组查询 需求:查询男女分别有多少人 select gender as '性别' ,count() as '人数' from student gorup by gender 分组之后的条件筛选用having select gender as '性别' ,count() as '人数' from student group by gender having count(*)>1 auto_increment 设定int类型的字段的值可以自增长 必须和primary key 或者 unique key 一起使用 primary key = unique key + not null 通常每个表都有主键 且大多数表,喜欢使用一个id并自增长类型作为主键 但:一个表只能设定一个主键 unique [key] 设定为唯一键,表示该字段的所有行的值不可以重复(唯一性) default '默认值' :设定一个字段在没有插入数据的时候自动使用的值 comment 。字段注释

select * from student where banji_id=2; select * from banji where name = 'java1812' select * from student where banji_id = (select id from banji where name = 'Java1812)

select * from student where banji_id =1 or banji_id = 2; select * from student where banji_id in (1,2); select id, name, (select count(*) from student where student.banji_id = banji.id) as total_count from banji order by 'name' total_count 是一个计算字段,他是由括号中的子查询建立的,该子查询对检索出的每一个banji执行一次 "=":要求子查询只有一个结果,"in":子查询可以有多个结果 子查询的select语句只能从查询单个列,不过在时机使用中由于性能的限制,不能套嵌太多的子查询

内连接 inner join 和 join 都可以 等值连接和内连接效果一样,但是开发中建议使用内连接 select * from student as s inner join as b on s.banji_id = b.id inner join on 只有左右两个表有关联的才能查询出来 left join on左表中的都显示出来,右表没有显示空 right join on 右表都显示,左表没有显示空

模糊查找 like % 代表0或多个任意字符 _ 代表一个任意字符 语法:like '%关键字%'

JS:解释型语言 弱类型语言 var num = 100; var variable 直接F12浏览器 img.png 函数后加() 声明要在单击事件内 id选择器要加value获取它的值 向input内填充数值直接document.getElementById('result').value=result;就行

JS中可以用switch和eval function cal1(type){} JS方法传参不需要参数类型 switch (type){ case '+': result = parseInt(num1)+parseInt(num2); break; } eval 用于计算字符串表达式的值 var result = eval(num1+type+num2); isNAN

创建Javaweb
把他设置称web项目 配置tomcat img_1.png JSP文件建在Web目录下 WEB-INF文件夹是受保护的 pojo 实体类 英文名缩写 普通的Java对象

出现错误 在 <% } %>> 循环后面多输了一个> 导致>号出现在页面开头 statement=connection.prepareStatement(sql); resultSet=statement.executeQuery();

req.setAttribute("list",list); req.getRequestDispatcher("teacher_list.jsp").forward(req,resp); 可以使用EL表达式查看值有没有传过来 ${list}

-Dfile.encoding=UTF-8 解决服务器环境乱码问题

statement和prepareStatement的区别 https://blog.csdn.net/weixin_50223520/article/details/134688579 prepareStatement是预编译的,对于批量处理可以大大提高效率,也叫JDBC存储过程 使用Statement对象,在对数据库只执行一次存取的时候,用statement对象进行处理 PrepareStatement对象的开销比Statement大,对于一次性操作并不会带来额外好处 Statement每次执行sql语句,相关数据库都要执行sql语句的编译,而prepareStatement是预编译的,且支持批处理 PrepareStatement可以使用?替换变量 ps=conn.prepareStatement("select * from cust where id = ?") int sId = 1001; ps.setInt(1,sId); rs = ps.executeQuery(); 而Statement只能按照下面的写法实现 int sId = 1001; Statement stmt = conn.createStatement(); ResultSet rs = semt.executeQuery("selete * from cust ID="+sID); prepareStatement还有一个addBatch()方法,一次性发送多个查询 JDBC的性能最大增进是减少JDBC驱动与数据库之间的网络通讯次数 记得在URL后面添加:rewriteBatchedStatement=ture

network 200 正常 302 重定向 404 找不到 浏览器只认html tomcat返回的是html页面

String id = req.getParameter("id"); statement.setInt(1,Integer.parseInt(id)); setInt 将指定参数设置为给定Java int值。 在将此值发送到数据库时,驱动程序将他转化成一个SQL INTEGER 值

req.setCharacterEncoding("UTF-8"); 解决post请求乱码问题

请求转发 一般查到了数据之后,转发到一个JSP页面进行展示 req.setAttribute("list",list) req.getRequestDispatcher("student_list.jsp").forward(req,resp);

重定向:一般添加、删除、修改之后重定向到查找所有 resp.sendRedirect("/student"); 重定向的状态码是302,重定向的地址最终是由浏览器发送这个请求

给超链接添加点击事件并触发 xxx

Get 采用URL请求路径传输参数,参数拼接在URL后面 参数路径传输过程中隐私性较差,直接在URL后面 路径可以容纳的数据有限,只能传递少量参数 from表单的默认请求就是get http://localhost:8080/student?method=deleteById&id=23 Http://localhost:8080/student?name=zhangsan&age=12&gender=男 Get方式传参,不是非得在form表面,可以手动写,在超链接的href里面直接在地址后面加?id=2

POST 采用实体内容传参数 参数在传输过程中不可见,隐私型好 实体内容专门用来传输数据,大小没有限制 使用:在form上加method="post"

不管是Get方式还是POST方式传参参数,后台代码获取参数的方式都是一样的 req.getParameter("name")

乱码问题总结

数据库创建时选择utf-8编码 连接数据库url jdbc:mysql://localhost:3306/java?useUnicode=ture&characterEncoding=UTF-8 解决post请求乱码问题 method="post" req.setCharacterEncoding("UTF-8"); 服务器响应浏览器的乱码问题 resp.setContextType("text/html;charset=utf-8");

前台往后台发送请求方式 form表单 超链接<a href="/student?method=deleteById&id=1>删除 location.href ajax

impl:实现

分页常见的问题

封装一个分页需要哪些信息 分页需要发送哪两条sql语句

banji表和student表关联查询怎么处理剩下的数据 肯定要有一个类来封装结果 不破坏原有的实体类 新建一个vo后缀的实体类 StudentBanjiVO VO:Value Object

Service Dao 都是根据实体类分隔

ctrl+R 替换

过滤器 (敲黑板)

import javax.servlet.; 目前用的是这个包里的Filter接口 开发中重要的概念 建类 实现Filter接口 浏览器-》过滤器-》网页 FilterChain Chain(链条) "login".equals(method) // 比较 "post".equalsIgnoreCase(method) // 忽略大小写的比较 看手册 常量.方法不会造成空指针异常 关于post乱码 req.setCharacterEncoding("UTF-8"); 这段代码前面不能有任何req.getParameter()相关的代码 如果前面有相关代码,会使当前代码无效 WEB/WEB-INF/lib-/web-xml web项目的核心配置文件 趋势转成用注解 但是这个也得会 xml特点可以自定义标签 <----------------------------------------------------------> @WebFilter(filterName = "encoding",urlPatterns = "/") public class EncodingFilter implements Filter {} 上面等价于下面 StudentServlet com.situ.web.controller.CourseServlet StudentServlet /student <---------------------------------------------------------->

html默认是从上往下执行 所以建议是<script>写到下边或者写到独立的JS文件中,更推荐写到独立的文件,再引过来 onload:页面加载完了会自动触发onload事件执行

today is very good.
一共有两个结点,一个div结点,一个文本结点

各种选择器

全局修改js引用 ctrl+ shift+ r

引入jquery库

<script src="jQueryDemo/jquery-2.1.4.js"></script>

https://www.ibabyjoy.com/indexlist/261072/4/

空文件

简介

JavaSE项目... 展开 收起
Java 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/D20240220/JavaSE.git
git@gitee.com:D20240220/JavaSE.git
D20240220
JavaSE
JavaSE
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891