java学习篇
文章平均质量分 62
从0到1学习java
不习惯有你
一个喜欢渗透的小伙子,正在成为大佬的路上
展开
-
js的变量及运算符
概述:任意类型数据都可以参与比较运算符,比较最终结果:要么为布尔值true要么为false。概述:空对象类型数据NULL,也可参与数学运算符,但是需要隐式转换为数字参与数学运算符。概述:在JS当中拥有数学运算符、比较运算符、逻辑运算符、赋值运算符等等。除了数字以外其他类型数据也可参与比较运算符,需要隐式转换为数字参与。除了数字以外其他类型数据需要隐式转换为数字参与数学运算符。概述:数学运算符即为:加、减、乘、除、取余。概述:字符串也可参与数学运算,但有一些特殊。特殊:字符串参与数学运算的时候。原创 2022-11-08 20:26:40 · 369 阅读 · 0 评论 -
js介绍及内置功能函数、数据类型、变量
我们也可以利用双闭合标签在静态页面中书写js语法,双闭合标签script可以放在静态页面中中任意地方,script也可以有多个。概述:javascript属于脚本语言,js语法务必、必须、一定嵌套在静态网页中,js当中才能运行;概述:在JS当中内置函数prompt,可以在浏览器正上方弹出一个提示框。概述:在js当中也有数据类型:基本数据类型(5)、应用类型【复杂数据类型】(1)概述:变量来源于数学,变量相当于容器,可以存储数据,存储计算完结果。原创 2022-11-07 19:24:52 · 538 阅读 · 0 评论 -
Html/CSS基础知识
概述:前端中比较重要的标签,表单元素经常用来搜集用户输入的信息,将用户信息提交给服务器。块元素:自己独占一行(h1~h6标题)、div、p、ul、ol、address。行内元素:a、span、img。原创 2022-11-03 21:05:43 · 204 阅读 · 0 评论 -
mysql的锁机制
注意:MyISAM在执行查询语句之前,会自动给涉及的所有表加读锁,在执行更新操作前,会自动给涉及的表加写锁,这个过程并不需要用户干预,因此用户一般不需要使用命令来显示加锁。相对于串型处理来说,并发事务处理能大大增加数据库资源的利用率,提高数据库系统的事务吞吐量,从而可以支持更多用户并发操作,与此同时会带来一些列的问题。InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁。锁的粒度大,发生锁冲突的概概率最高,并发最低。原创 2022-11-01 17:49:28 · 665 阅读 · 2 评论 -
MySQL索引
红黑树:红黑树是AVL树的一个升级,损失了部分的性能来提升插入的性能,在红黑树中最低子树跟最高子树之差小于2被即可,在插入的时候,不需要进行N多次的旋转操作,而且还加入了变色的特性,来满足插入和查询的平衡。注意:mysql的innodb存储引擎默认情况下会把所有的数据文件放到表空间中,不会为每一个单独的表保存一份数据文件,如果需要将每一个表单独使用文件保存,设置。在树的结构中,左子树必须小于根节点,右子树必须大于根节点,如果是多叉树的话,从左到右是有序的。基本的索引类型,值可以为空,没有唯一性的限制(原创 2022-10-30 17:49:25 · 625 阅读 · 0 评论 -
JDBC及代码分层
链接:https://pan.baidu.com/s/1pncAno7AMDfSpPrNJN4TRg。通过这个约定,就不需要把服务放在代码中了,通过模块被装配的时候就可以发现服务类了。JDBC是基于JAVA语言访问数据库的一种技术。原创 2022-10-13 20:17:41 · 230 阅读 · 0 评论 -
数据库定义语言(DDL)
外键,当多个表之间有关联关系(一个表的某一个列的值依赖于另外一张表的某个值)的时候,需要使用外键。个人建议:在创建表的时候直接将各个表的约束条件添加好,如果包含外键的话,最好把外键关联表的数据优先插入。cascade:如果A,B,A中的某一个字段做关联,那么再删除表A的时候,需要首先将表B删除。在删除表的时候,经常会遇到多个表关联的情况,多个表关联的时候不能随意删除,需要使用级联删除。唯一键约束,可以限定某一个列的值是唯一的,唯一键的列一般被用作索引列。创建表的时候直接在类型的后面添加约束。原创 2022-10-06 22:50:03 · 446 阅读 · 0 评论 -
数据库的事务
所有事务中都是为了保证数据的一致性,所以一致性是最终的追求,事务中的一致性是通过原子性、隔离性、持久性来保证的。最终是为了保证数据的一致性,当经过N多次操作之后,数据的状态从一个一致性到另外一个一致性状态,也就是数据不可发生不一致。各个事务之间相关不会产生影响,严格的隔离性会呆滞效率降低,在某些情况下为了提高执行效率会降低隔离性的级别。这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑单位。一般情况下,锁的粒度越小,效率越高,粒度越大,效率越低。3.用户关闭会话之后,会自动提交。原创 2022-10-04 19:08:50 · 419 阅读 · 0 评论 -
数据库的增删改(DML)
tuncate跟delete有所不同,delete在进行删除的时候经过事务,而truncate不经过事务,一旦删除就是永久删除,不具备回滚的操作。如果同一份数据,在同一个时刻只能有一个人访问,就不会出现数据错乱的问题,但是在现在项目中,更多的是并发访问,并发访问的同时带来的是数据的不安全,也就是不一致性。为提高效率,可能多个操作会在同一个事务中执行,那么就有可能部分成功,部分失败,基于这种情况就需要控制事物的控制。如果要保证数据的安全,最主要的方式就是加锁的方式MVCC。最主要的目的是为了数据的一致性。原创 2022-10-01 16:31:31 · 550 阅读 · 0 评论 -
oracle的join语法及行专列
USING 除了可以使用on表示连接条件之外,也可以使用using作为连接条件,不允许查询的字段有任何前缀。总结两种语法的SQL语句没有任何限制,可以随便用,但是建议使用99语法,不要使用92语法,SQL语句显得清楚明了。NATURAL JOIN 相当于等值连接,不需要连接条件,会从两张表找到相同的列做连接。INNER OUTER JOIN 两张表的连接查询,只会查询出有匹配记录的数据。子查询:嵌套在其他sql语句中的完整sql语句,可以称为子查询。原创 2022-09-29 19:37:37 · 511 阅读 · 0 评论 -
oracle SQL
instr:查找指定字符串的位置 instr(字符串,需要查找的内容)lpad:左边填充字符串 lapd(字段,占的长度,用什么占位)到大文本的检索的时候,可以使用某些框架luence、solr、elastic、search。order by 做的是全排序,会比较消耗系统资源,因此选择在业务不太繁忙的时候进行。trunc:截断数据,按照位数去进行截断,但是不会进行四舍五入的操作。and的优先级高于or,所以一定要将or的相关操作用()括起来 ,提高优先级。原创 2022-09-27 12:48:09 · 1254 阅读 · 0 评论 -
oracle安装介绍
OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础,只有该服务启动Oracle数据库才能正常启动(必须开启)OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候才需要(必须启动)Mysql(用的最多)、Oracle(最安全)、Sql sever(.net)、Db2(金融、银行)结构化查询语言,具有定义、查询、更新和控制等多种功能,是关系数据库的标准语言。其他的五个服务可以关闭,手动开启。原创 2022-09-18 20:38:14 · 365 阅读 · 0 评论 -
lambda表达式(第二十二天)
方法引用:可以简单的理解为调用别的类中的方法来实现接口中的方法。(仅个人看法,不喜勿喷) 简单的理解为。一、A b = new A(){ public void a(){} }Lambda表达式:对接口中唯一方法的实现,阔号中传参数,花括号中如何实现。在Java中提供了一系列的函数式接口,用来接受后续传入的逻辑,但是输入和输出有要求。类名::staticMethod。类名::instMethod。常见写法归纳:(A为接口,里面的方法为a)原创 2022-09-11 19:49:05 · 170 阅读 · 0 评论 -
网络编程-IP、TCP、UDP1(第二十一天)
java中使用socket完成Tcp程序的开发,使用此类可以方便建立可靠的、双向的、持续的、点对点的通信的连接。网络编程的三要素:ip地址、端口号(系统保留端口0~1024有效端口号0~65536)、通信协议(TCP/UDP)需要建立连接,效率相对比较低,传输安全,三次握手(点名->答到->确认)对于java的网络程序来讲,每一个客户端都使用一个socket对象表示。不需要建立连接,数据包的大小限制在64k内,效率较高不安全容易丢包。在sket的不开发中,服务器端使用socket等待客户端的连接。原创 2022-09-10 01:17:30 · 129 阅读 · 0 评论 -
多线程-生产者消费者问题、线程池(第二十天)
TIDYING:如果所有的任务都已终止了,workerCount(有效呈数)为0,线程池进入该状态后刽周用terminated()方法进入TERMINATED状态。1.使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成消耗。3.通过线程池可以对线程进行合理的管理,根据系统的承受能力调整运行线程数量的大小。RUNNING:能接受新提交的任务,并且也能处理阻塞队列中的任务。,不再接受新提交的任务,但却可以继续处理阻塞队列中已保存的任务。STOP:不能接受新任务,也不出列队列中的任务,原创 2022-09-06 12:40:11 · 206 阅读 · 0 评论 -
多线程-线程的生命周期、线程同步与死锁(第十九天)
public static void yield() 当前正在执行的线程暂停一次,允许其他线程执行,不阻塞,线程进入就绪状态,如果没有其他等待执行的线程,这个时候当前线程就会马上恢复执行。public final void join() 调用该方法的线程强制执行,其他线程处于阻塞状态,该线程执行完毕后其他线程再执行。在多线程的时候,可以实现唤醒和等待的过程,但是唤醒和等待操作不是thread,而是我们设置的共享对象和共享变量。原创 2022-09-05 10:40:32 · 120 阅读 · 0 评论 -
多线程-线程与进程、线程的实现方式(第十八天)
一个进程中的线程共享相同的内存单元/内存地址空间->可以访问相同的变量和对象,而且他们从同一堆中分配对象->通信、数据交互、同步操作。当对应的线程创建完成,且调用start方法之后,所有的线程会添加到一个就绪队列中,所有的线程同时去抢占cpu的资源。3.运行状态:当前进程获取到cpu资源之后,就绪队列中的所有线程都会去抢占cpu资源,谁先抢到先执行,在执行的过程中就叫做运行状态。由于线程间的通信是在同一地址空间上进行的,所以不需要额外的通信机制,这就使得通信更简单而且通信更简便而且信息传递的速度也更快。原创 2022-09-02 19:28:44 · 132 阅读 · 0 评论 -
IO流-字节流、字符流、输入流、输出流 (第十七天)
当某一个输出流对象中带有缓冲区的时候,就需要进行flush,不建议大家去记住每一个输出流的分类。1.如果需要将对象通过IO流进行传输,那么必须要实现Serializable接口(序列化)2.使用的时候必须要声明serialVersionUID,值为多少无所谓但必须要有。3.transient:使用此关键字修饰变量,在进行序列化的时候不会被序列化。字符流可以直接读取汉字,而字节流在处理的时候会出现中文乱码(字符流效率较高)最保险的方式,在输出流关闭之前都flush一下,然后再关闭。...原创 2022-08-29 20:39:31 · 58 阅读 · 0 评论 -
Java集合框架-Collections-及File类讲解(第十六天)
字符流输出流Writer基类。字符流 字符流输入流Reader基类。按照处理数据单元划分:字节流 字节输入流InputSteam基类。从一个文件中读取数据到程序中叫做输入流。从程序输出数据到另一个文件叫做输出流。流表示从一个文件将数据返回到另外一个文件,包含一个流向的问题。在java中需要读写文件的数据的话,需要使用流的概念。字节流是8位通用字节流,字符流是16位Unicode字符流。binarySearch():二分查找。注意:当编写io流的程序的时候一定要注意关闭liu。..原创 2022-08-18 01:17:42 · 103 阅读 · 0 评论 -
Java集合框架-HashMap、TreeMap-源码分析(第十五天)
map.entrySet():表示的是K-V组合的一组映射关系,key和value成组出现,使用映射作为迭代器,将他们作为一个整体。HashMap:数组+链表(1.7) 数组+链表+红黑树(1.8及以上版本)2.hashmap中的key和vlaue都可以为空,hashtable不允许为空。2.在扩容之后涉及到元素的迁移过程,迁移的时候只需要判断二进制前一位是0或1即可。1.hashmap线程不安全,效率高,hashtable线程安全,效率低。size() 判断集合的大小。...原创 2022-08-15 00:28:02 · 49 阅读 · 0 评论 -
Java集合框架总结(第十四天)
的意义是什么呢HashSet hs=new HashSet() 这样写也没什么啊原因如下:Set是一个接口,而HashSet是一个类。这句创建了一个HashSet的对象后把上溯到了Set。此时它是一个Set引用了,有些HashSet有但是Set没有的...Set set=new HashSet();的意义是什么呢_谜的博客的博客-CSDN博客。的区别,看了相关的文章得到了解决,分享给大家。......原创 2022-08-13 14:34:53 · 64 阅读 · 0 评论 -
Java集合框架-HashSet、TreeSet(第十三天)
在定义方法的时候,指定方法的返回值和参数是自定义的占位符,可以是类名中的T,也可以是自定义的Q,只不过在使用Q的时候需要使用,定义在返回值的前面。在定义类的时候在类名的后面添加,起到占位的作用,类中方法的返回值类型和属性的类型都可以使用。4.设置元素的时候,如果是自定义对象,会查找对象中的equals和hashcode的方法,如果没有比较的是地址。b.子类在实现泛型接口的时候,只在实现父类的接口的时候指定父类的泛型即可,在定义接口的时候,在接口的名称后添加...原创 2022-08-09 14:33:26 · 247 阅读 · 0 评论 -
Java集合框架-ArrayList、LinkedList等(第十二天)
所有的集合类都默认实现了Iterable的接口,实现此接口意味着具备了增强for循环的能力也就是for-each。(1)ArrayList是线程不安全的,效率高,Vecotor是线程安全的,效率低。存入和取出的顺序不一定一致,操作数据的方法与List类似,set接口不存在get()方法。在使用iterator进行迭代的过程中删除其中的某个元素会报错,并发操作异常,因此。2.set不可以通过下标获取对应位置的元素的值,因为无序的特点。当使用向前遍历的时候必须要保证指针在迭代器的结尾,否则无法获取结果值。...原创 2022-08-06 16:10:22 · 90 阅读 · 0 评论 -
java常用类、java集合框架 (第十一天)
add:要求必须传入的参数是object对象,因此当写入基本数据类型的时候,包含自动拆箱和自动装箱的过程。2.当使用arraylist子类实现的时候,初始化的长度是10,当长度不够的时候会自己进行扩容。retainAll:若集合中拥有另一个集合的所有元素,返回true,否则返回false。clear:只是清空集合中的元素,但是此集合对象并没有被回收。1.可以存放在不同类型的数据,而数组只能存放固定类型的数据。contains:判断集合中是否包含指定的元素。addAll:添加另一个集合的元素到此集合中。...原创 2022-08-04 11:11:04 · 42 阅读 · 0 评论 -
java异常及常用类-包装类、String(第十一天)
在方法调用过程中,可以存在N多个方法之间的调用,此时假如每个方法中都包含了异常情况那么就需要在每个方法中都进行try...catch,另外一种比较简单的方式,就是在方法的最外层进行调用处理即可。偷懒的方式是判断在整个调用的过程中,外层的调用方法是否有对异常的处理,如果有就直接使用throw,如果没有那么就要使用try...catch...在异常情况出现的时候,可以使用try....catch....finally的方法是对异常进行处理,除此之外,可以将向外抛出,由外部进行处理。2.自定义实现构造方法。...原创 2022-08-02 17:00:23 · 52 阅读 · 0 评论 -
内部类、异常简单介绍(第十天)
匿名内部类当定义了一个类,实现了某个接口的时候,在使用过程中只需使用一次,没有其他用途,其实考虑到代码编写的简洁,可以考虑不创建具体的类,而采用newinterface({添加未实现的方法})就叫做匿名内部类。4.当内部类和外部类具有相同的私有属性的时候,在内部类中访问的时候,可以直接访问内部类的属性,如果需要访问外部类的属性,那么需要添加。注意当使用多重的catch的时候,一定要注意相关异常的顺序,将子类放在最前面的catch,父类放在后面的catch。...原创 2022-08-01 16:38:21 · 46 阅读 · 0 评论 -
接口(第九天)
1.接口代表一种能力,接口中可以定义N多种方法,子类在进行实现的时候,必须要实现这些方法,将这些方法进行实现,就意味着具体了方法的能力。接口中可以包含多个方法,且方法跟抽象类中的抽象方法一致,可以不写实现,子类在实现的时候必须要实现。4.接口的子类必须要实现接口中所有的方法,跟抽象类有所不同,抽象类中的抽象方法必须要被子类实现。8.抽象类中可以实现接口,并且不实现接口中的方法,而接口只能继承接口,不能实现接口。1.抽象类中的方法可以包含抽象方法,也可以有普通方法,接口中只能包含抽象方法。...原创 2022-07-31 15:02:55 · 81 阅读 · 0 评论 -
Object,多态 1(第八天)
当父类需要转换成子类的时候,要进行强制转换,但在强制转换之前一定要先判断父类引用指向的子类对象到底是谁,如果无法确定,在运行过程中可能出错。一个类如果没有使用extends显性的继承另外一个类那么这个类就继承自object类。对应同一个指令(调用同一个名称的方法),不同的对象给予的反应(不同的方法实现)2.子类方法必须重写父类的方法。2.父类作为方法的返回值类型。equals比较的是值,==比较的是地址。1.父类作为方法的参数。B.object类的主要方法。A.object是所有类的父类。...原创 2022-07-29 22:04:20 · 40 阅读 · 0 评论 -
继承、Super,重写、抽象类、抽象方法 1(第七天)
3.抽象类中的某些方法需要子类进行更丰富的实现,父类实现没有意义,此时可以将抽象类中的方法定义为抽象方法,没有具体的实现,只包含方法名称,返回值,参数列表,访问修饰符。6.子类的构造方法中都会默认使用super关键字调用父类的无参构造方法,因此在定义类的时候,无论自己是否需要构造方法,最好将无参构造方法写在父类上。1.重写表示的是子类覆盖父类的方法,当覆盖之后,调用同样的方法的时候会优先调用子类。必须要存在继承关系,当父类中的方法无法满足子类需求的时候可以选择使用重写的方法。......原创 2022-07-28 17:09:04 · 257 阅读 · 0 评论 -
代码块、Package,Import,封装(第六天)
注意当一个java文件中需要使用多个同名的类的时候,只能选择导入一个,另一个使用完全限定名的方式进行导入。用法importjava.包名.类名;调用方法的时候实际传入的值叫做实际参数,代表具体的数值,用来替换在方法体重代码逻辑的值进行运算。静态代码块使用static{}括号括起来的代码叫做静态代码块,在程序载入的时候优先执行。3.当方法的参数1值是引用类型的时候,如果改变了该引用类型的值,会改变原来对象的值。将类中的属性设置为私有属性,提供共有的为外部方法供程序进行调用,可以实现丰富的细节操作。......原创 2022-07-27 11:57:45 · 233 阅读 · 0 评论 -
局部变量成员变量、引用类型、this,static(第五天)
当构造方法中需要调用其他的构造方法时,可以使用this.(),相当于this.classname()1.构造方法当前构造方法中的参数名称跟类的成员变量名称一样的时候,可使用this代表当前对象。3.成员变量的使用当方法中的参数名称跟成员变量保持一致的时候,使用this.表示形参列表中的值。2.普通方法中当多个普通方法之间需要调用时,可以使用this来调用,当前对象的其他方法。静态变量被所有的对象共享,属于公共变量,对象和类都可以直接调用,但推荐使用类来调用。3.同一个类中可以包含多个同名的构造方法。....原创 2022-07-25 23:46:46 · 120 阅读 · 0 评论 -
java面向对象-封装-1(第四天)
先有具体的对象,然后抽象各个对象之间像的部分,归纳出类,通过类认识其他对象。使用对象的时候可以通过对象名称.属性或者对象名称.方法来使用属性和方法。面向对象事物比较复杂,使用简单的线性思维无法解决。面向过程事物比较简单,可以用线性的思维解决。具体的叫对象,抽象的叫类,类具体后就是对象。类是对象的抽象,对象是类的实例化。属性--对象具有的各种特征(值)方法--对象执行的操作(函数)对象由一类属性和方法构成。equals比较的是字符串的值。涉及到堆、栈、常量池相关的知识。==比较的是字符串的地址。...原创 2022-07-24 22:09:02 · 66 阅读 · 0 评论 -
java递归算法、数组讲解、排序算法 1(第三天)
数组是引用类型,当创建完成数组之后相当于是在方法外定义了一个变量,此时数组是有默认值的。2.排序算法的时间复杂度、空间复杂度衡量一个数据结构是否合适的衡量标准。3.排序算法的稳定性排序之后的值跟排序之前的值位置是否发生变化。在程序调用的过程中,有时需要调用程序本身,此时可以使用递归。a.长度是确定的,数组一旦被创建,它的大小就不可以改变。创建数组栈里存的是所有的变量,new出来的都在堆里面。定义二维数组的时候一定需要注意,必须要给定数组的长度。java中多维数组不必须是规则矩阵形式(数组的数组)...原创 2022-07-24 00:54:31 · 123 阅读 · 0 评论 -
java二进制运算、数据类型的转换、分支结构(第二天)
反码表示规则为如果是正数,则表示方法和原码一样,如果是负数,则保留符号位1,然后将这个数字的原码按照每位取反(正数是一样。3、在运算过程中,可以手动强制转换,将大的类型转化为小的类型(datatype)可能产生精度损失。创建文件扫描对象,System.in表示的是标准输入,可以从控制台读取数据(装饰者模式)2、在运算过程中,如果两个值得类型不一致,会自动将小的类型转化为大的类型。1、在赋值运算或算数运算时,要求数据类型相同,否则要求数据转化。原码中,最高位0代表正,1代表负,其他数字位代表值的绝对值。...原创 2022-07-21 23:03:42 · 91 阅读 · 0 评论 -
java基础语法-标识符保留字数据类型运算符 (第一天)
在一行中可以定义多个变量,但是不推荐,每一个变量最好单独一行。4.不可以是java的标识符或者保留字(给系统使用的表示特殊含义的字符串)在方法内,定义的变量必须要进行初始化操作,不会存在默认值。java是一种强类型语言表示变量在定义的时候必须显示的声明类型是什么。int正负21亿4。在类内,方法外定义的变量叫做成员变量,会存在默认值。a.通过标识符的名称能知道代表的含义,千万不要写拼音。变量在程序运行过程中,值会发生改变的量叫做变量。常量在程序运行过程中,值不会改变的量叫做常量。......原创 2022-07-20 16:33:56 · 113 阅读 · 0 评论