0%

对象和类

  1. 静态方法不能访问某一对象的实例域,因为它不能操作对象,但静态的方法可以访问自身类中的静态域

  2. 在下面两种情况下使用静态方法:一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如:Math.pow());一个方法只需要访问类的静态域

  3. Scanner类的一些知识点:next()方法如果没有扫描读入非空格或非回车字符是不会创建String对象并返回的,并且next()遇到空格或者说\t或者是回车都会结束扫描;nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行(会忽略掉末尾的回车进入下一行开始扫描)。所以它和next()的区别就是它没有分隔符,直接扫描全部的键盘输入内容,并创建对象进行将其引用返回。

    Scanner类还可以用来读取文件

    1
    2
    3
    4
    5
    try {
    scanner = new Scanner(new File(fileName));//注意传入的是File
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    }

    使用Scanner对象中hasNext()方法来判断文件是否读取完毕,另外一个就是用来获取控制台输入的nextLine(),nextInt()等方法来获取文本的信息,非常类似于自己在控制台输入的数据变成了文本内容,给Scanner对象获取

    nextInt:Scanner中的nextInt()只会读取数值,剩下”\n”还没有读取

    next()与nextLine()区别

    next():

    • 1、一定要读取到有效字符后才可以结束输入。
    • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
    • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    • 4、next() 不能得到带有空格的字符串。

    nextLine():

    • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符,并且将光标定位在下一行(会忽略掉末尾的回车进入下一行开始扫描)。
    • 2、可以获得空白。
  4. Java控制台输入输出

    • 使用Scanner

    Scanner scanner=new Scanner(System.in),然后使用Scanner相关的方法,比如scanner.nextInt() scanner.nextLine() scanner.next()等

    • 使用BufferReader
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
    try {
    String str1=bufferedReader.readLine();
    String str2=bufferedReader.readLine();
    System.out.print(str1);
    System.out.print(str2);
    } catch (IOException e) {
    e.printStackTrace();
    }
阅读全文 »

MySQL初级篇

1. 基本的select语句

SQL的分类

  • DDL(Data Definition Languages、数据定义语言) ,这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。主要的语句关键字包括CREATEDROPALTERRENAMETRUNCATE等。

  • DML:(Data Manipulation Language、数据操作语言) ,用于添加、删除、更新和查询数据库记录(增删改查),并检查数据完整性。主要的语句关键字包括INSERTDELETEUPDATESELECT等。SELECT是SQL语言的基础,最为重要。

  • DCL:(Data Control Language、数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括GRANTREVOKECOMMITROLLBACKSAVEPOINT等。

因为查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:DQL(数据查询语言)。还有单独将COMMITROLLBACK 取出来称为TCL (Transaction Control Language,事务控制语言)。

阅读全文 »

帮助指令

  1. 在Linux下隐藏文件是以 . 开头的

  2. man或help +{待查询的指令}获取帮助信息

文件目录指令

  1. 蓝色代表是一个目录,白色代表是一个文件

文件权限

  1. r=4,w=2,x=1 可以通过数字赋予权限
  2. 对于文件夹的权限:r表示可以查看文件列表(即ls命令);w表示可以在将该目录下的文件重命名,创建子文件,删除;x表示可以进入该文件夹(即cd)

shell编程

注意:一道题目先思考20-30分钟如果实在做不出来再看看题解和思路,然后自己试试能不能自己写出代码,题目后面是在LeetCode网站上的题号,前面那个是自动生成的有序列表。

  • 2022/4/24 基本上一天四道题
  1. 两数之和(1):太简单没什么说的。

  2. 两数相加(2):应该根据题目现有的条件来做,从题目本身出发,不要一开始就考虑转换为常用的按顺序的十进制加法,类比二进制加法计算(二进制全加法器),直接用两个链表的结点从前往后相加即可。

  3. 无重复字符的最长子串(3):

    滑动窗口思想,两个指针left和right,如果left和right之间没有重复就让right++,因为之前left和right之间无重复,所有如果right++后出现重复一定是现在的right和之前的left到right之间有一个值重复了,以string.charAt(right)为标准从left开始遍历,分三种情况(前部、中部、后部)

    (1)a b c a

    (2)a b c b

    (3)a b c c

    从j=left开始遍历(j++),如果遇到这两种重复的情况,让left=j+1即左指针指向重复位置的下一个位置。

  4. 寻找两个正序数组的中位数(4):

    归并排序,将两个有序数组合并为一个,for循环遍历合并后的数组,然后分别设置两个指针指向需要排序的两个数组,取两个数组中小的数放入新数组,并且让该数组指针后移,边界情况若一个数组指针已经指向末尾,则另外判断次情况,将另一个数组的数全部放入即可。

    算法时间复杂度为O(m+n),只用遍历一次新数组即可。

    阅读全文 »

JDBC核心技术

1.数据库事务

1.1什么是数据库事务

事务:一组逻辑操作单元(一个或多个DML操作),使数据从一种状态变换到另一种状态

1.2哪些操作会导致数据自动提交

  • DDL操作,set autocommit=false的方式对DDL无效
  • DML操作m默认情况下,一旦执行也会自动提交,可以通过set autocommit=false的方式取消DML操作的自动提交
  • 默认在关闭连接时,会自动提交数据

2.DAO:data(base) access object(数据访问对象)

一些其他知识

  1. url:uniform resource locator (统一资源定位符)

1. JavaScript

2. XML

2.1 XML的概念:可扩展的标记语言

2.2 XML包含三个部分

  • XML声明,必须有而且声明这一行代码必须在XML文件的第一行
  • DTD(document type defination) 文档类型定义
  • XML正文

3. MVC

3.1 MVC:Model(模型)、View(视图)、Controller(控制器)

  • 视图层:用于做数据展示以及用户交互的界面

  • 控制层:能够接受客户端的请求,具体的业务功能需要借助于模型组件来完成

  • 模型层:模型分为很多种,有比较简单的pojo/vo(value object)(数据库的一条记录所对应的对象) ,有业务模型组件,有数据访问组件

    • pojo/vo:值对象
    • DAO:数据访问对象
    • BO(business object):业务对象
  • 区分业务对象和数据访问对象

    (1)DAO中的方法都是单精度方法或者细粒度方法,一个方法只考虑一个操作,比如添加就是insert操作,查询就是select操作等等。

    (2)BO中的方法属于业务方法,而实际的业务是比较复杂的,因此业务方法的粒度比较粗

    阅读全文 »

文本格式化标签

标签 标签 说明
b strong 加粗
u ins 下划线
i em 倾斜
s del 删除线
阅读全文 »

Git教程

1. 一些常用的git命令

image-20220505162534378

  • ctrl+L清空屏幕(输入clear然后回车也可以)
  • git reflog 查看版本信息
  • git log 查看版本详细信息

image-20220505171148921

下面是一个很好用的查看提交记录的命令,可以可视化的查看commit和merge

1
git log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative 
1
2
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%
d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

2. 廖雪峰的git教程

多人协作git - 廖雪峰的官方网站 (liaoxuefeng.com)

image-20221101100754052

BFS(广度优先搜索)

我们采用示例图来说明这个过程,在搜索的过程中,初始所有节点是白色(代表了所有点都还没开始搜索),把起点V0标志成灰色(表示即将辐射V0),下一步搜索的时候,我们把所有的灰色节点访问一次,然后将其变成黑色(表示已经被辐射过了),进而再将他们所能到达的节点标志成灰色(因为那些节点是下一步搜索的目标点了),但是这里有个判断,就像刚刚的例子,当访问到V1节点的时候,它的下一个节点应该是V0和V4,但是V0已经在前面被染成黑色了,所以不会将它染灰色。这样持续下去,直到目标节点V6被染灰色,说明了下一步就到终点了,没必要再搜索(染色)其他节点了,此时可以结束搜索了,整个搜索就结束了。然后根据搜索过程,反过来把最短路径找出来,下图中把最终路径上的节点标志成绿色。

阅读全文 »

Accelerated c++

使用字符串

  1. >>运算符从标准输入读进一个字符串,它会首先略去输入开始碰到的空白字符(空白、制表符、回退键和换行符),然后连续的读入字符到某个变量中,直到遇到了另一个空白字符或文件结束标记为止

  2. c++的数据结构可以用struct实现

    1
    2
    3
    4
    5
    struct studentInfo{
    string name;
    double midterm;
    vector<double> homework;
    };
  3. 随机访问:s[2],s[5],这样随机的数字进行访问就是随机访问,顺序访问就是从第一个元素开始,按照既定顺序一个一个遍历到结尾

  4. 半开[i,j)区间的元素个数是j-i,[i,j]闭区间的元素个数是j-i+1

阅读全文 »