一、课前分享/*------------------------------------------------------*/
早:
数据库的基本操作:增删改查
结构分类:非结构,半结构,结构-一对一,一对多,多对多
sql语句:dml(操作),ddl(定义),dql(查询),dcl(控制、用户权限)
四大特性:acid 隔离级别
自连接
{
补充:
数据库DataBase通俗来讲就是存放数据的地方,和Excel表格其实没多大区别,我们使用数据库是因为它在存放数据方面有着巨大的优势,它能存放大量的数据,并且允许很多人同时在里面存放数据。正如Excel是一张一张的二维表。每个表都是由行和列组成的。关系数据库里存放的也是一张一张的表,只不过各个表之间是有联系的。所以,简单来说:关系数据库=多张表+各表之间的关系。
sql语言是一种结构化查询语言,属于高级语言,sql语句在执行时内部也会先进行编译,然后再执行sql(编译由DBMS完成)。DBMS负责执行sql语句,通过执行sql语句来操作DB当中的数据。
DBMS -(执行)-> SQL -(操作)-> DB
}
中:
方法,递归,数组
方法:方便管理,减少重复操作,return必须放在方法的最后,其后的代码不会在执行
数组:长度不可变,通过索引访问内容 ,支持随机访问,声明方法
二、上课内容/*------------------------------------------------------*/
早:
面向对象与面向过程
java之父:James Gosling
不要在别人面前提别人的痛处
jdk1.5: ---jdk1.5的一些基本特性
1.泛型
2.自动装箱/拆箱
3.for-each
4.static import
5.可变参数
jdk1.7: ---jdk1.7的一些基本特性
1.模块化新特性
2.多语言支持
3.开发者的开发效率得到了改善
4.执行效率提高
jdk1.8(jdk8): ---jdk8的一些基本特性
1.Lambda表达式
2.新的日期API
3.引入Optional
4.使用Base64
5.接口的默认方法和静态方法
6.新增方法引用格式
7.新增Stream类
8.注解相关的改变
9.支持并行(parallel)数组
10.对并发类(Concurrency)的扩展。
jdk11: ---jdk11的一些基本特性
1. Lambda 表达式中使用 var
2. 字符串 API 增强
3. 标准化 HTTPClient API
4. java 命令直接编译运行 java
5. 增加对 TLS 1.3 的支持
jdk17: ---jdk17的一些基本特性
JEP 415:特定于上下文的反序列化过滤器
JEP 414:Vector API(第二个孵化器)
JEP 412:外部函数和内存 API(孵化器)
JEP 411:弃用安全管理器以进行删除
JEP 410:删除实验性 AOT 和 JIT 编译器
JEP 409:密封类
JEP 407:删除 RMI 激活
JEP 406:开关模式匹配(预览)
JEP 403:强封装 JDK 内部
JEP 398:弃用 Applet API 以进行删除
JEP 391:macOS/AArch64 端口
JEP 382:新的 macOS 渲染管线
JEP 356:增强型伪随机数生成器
JEP 306:恢复始终严格的浮点语义
长版本(长期支持版本):lts
短版本(只供短期使用)
Android开发冷了-前端开发能做移动端开发
跟测试,产品搞好关系
java特性:简单性,面向对象 ,可移植性,高性能,动态性,多线程,安全性,健壮性
创建一个install_path 文件夹 将所安装的软件的路径都放在里面,便于找到
配置环境变量是为了在任何地方都可以使用java和javac
三、心得体会/*------------------------------------------------------*/
今天的内容是java入门,较为基础,但也帮助我重新梳理了一遍java基础知识,俗话说:“温故而知新”,在今天的学习中我有了新的收获。首先,我重识了java之父James Gosling,百度上搜到的图片是一个“聪明绝顶”的白发老人,一副标准IT人员的相貌。然后我了解了jdk的几个重点版本的新特性,在jdk11中有一个新特性是java命令直接编译运行java,这省去了javac的步骤,不得不说真是一个方便的功能,所以说以后我们开发也要从使用者的角度去思考,为用户节省时间,提升体验。然后老师还说Android开发冷了,因为前端开发现在都能做移动端开发了,不需要Android开发了,但是我们学校班主任之前还建议我搞Android 开发??下一个收获是我们自己电脑上的文件管理。每次下载安装新软件的时候我都会思考一会儿安装路径什么的放哪儿,然后往往每次都会新建一个文件夹用来当作路径,但是老师的方法就很好,统一使用一个文件夹install_package来存放安装包,install_path来存放路径。然后又重新复习了一遍环境变量,它的作用是让我们在任何地方都能够找到所用的程序、命令。因为今天讲的内容都很基础,所以我上课好困啊qvq,但是为了转移注意力还是找了点别的事干,在知乎上刷了刷加缪,我喜欢他的思想。还练习了一下十大排序,自己完成了三个,后面七个明天再看。
十大排序之前三
//1.冒泡排序
public static int[] bubble(int []arr){
int[] a = arr.clone();
int len=a.length;
for(int i=0;i<len;i++){
for(int j=0;j<len-1;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
//2、选择排序
// -首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
//再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
//重复第二步,直到所有元素均排序完毕。
public static int [] selection(int []arr){
int[] a = arr.clone();
// 总共要经过 N-1 轮比较
for (int i = 0; i < a.length - 1; i++) {
int min = i;
// 每轮需要比较的次数 N-i
for (int j = i + 1; j < a.length; j++) {
if (a[j] < a[min]) {
// 记录目前能找到的最小值元素的下标
min = j;
}
}
// 将找到的最小值和i位置所在的值进行交换
if (i != min) {
int tmp = a[i];
a[i] = a[min];
a[min] = tmp;
}
}
return a;
}
//3、插入排序
//将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
//从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
public static int [] insert(int []arr){
int[] a = arr.clone();
int len = a.length;
//从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。
int i = 1;
while(i<len){
int j=i;
while(j>0){//与前面一个元素进行比较,如果小则换个位置,再重复这一步
if(a[j]<a[j-1]){
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
j--;
}
else break;
}
i++;
}
return a;
}
下面是今天的改错作业:
原:
public Class error{
public static Void mian(String[] ar){
system.out.println(hello java);
}
}
直接边编译运行边找错
改完:
public class error{
public static void main(String[] ar){
System.out.println("hello java");
}
}
好坏啊。mian差点找不出来QAQ。
如果你继续去寻找幸福是由什么组成的,那你永远也无法找到幸福;如果你一直在找人生的意义,你永远也不会生活。
-------加缪