java
文章平均质量分 57
Suunsr
这个作者很懒,什么都没留下…
展开
-
计算机网络中的基本知识
OSI分层(7层)物理层、数据链路层、网络层、运输层、会话层、表示层、应用层TCP/IP分层(4层)网络接口层、网络层、运输层、应用层五层协议(5层)物理层、数据链路层、网络层、运输层、应用层五层结构的概述应用层:通过应用进程间的交互来完成特定网络应用数据:报文协议:HTTP, SMTP(邮件), FTP(文件传送)运输层:向两个主机进程之间的通信提供通用的数据传输服务。数据:TCP:报文段,UDP:用户数据报协议:TCP, UDP网络层:为分组交换网上的不同主机提供通信服务数据原创 2022-05-17 15:31:43 · 357 阅读 · 0 评论 -
线程安全问题的原因和解决方案
线程安全问题出现的根本原因:1.存在俩个或俩个以上的线程共享着一个资源.2.对共享的资源有写的操作.解决方案:就是将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程是不可以参与运算的.必需要当前线程把这些都执行完毕之后,其他线程才能参与运算.同步的好处:解决了线程的安全问题.同步的弊端:相对降低了效率,因为同步外的线程都会判断同步锁同步的前提:同步中必须有多个线程争取同一个锁.public class Main { static Obj原创 2022-05-15 21:03:13 · 204 阅读 · 0 评论 -
七大排序算法总结
1.稳定性(重要)俩个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法.例如:某宝商城后台,需要你按照订单的金额排序,原订单是按照时间顺序排的,要求排序后原先的时间先后顺序不变,即为稳定性.这时候就需要我们使用稳定性的排序算法对订单的金额进行升序排序,保证其他信息的先后顺序不发生变化.2.分类:内排序:一次性将所有待排序的数据放入内存中进行的排序,基于元素之间比较的排序.包括七大排序外排序:需要在内外存之间多次交换数据才能进行...原创 2022-03-22 12:13:39 · 3793 阅读 · 2 评论 -
java有关于优先级队列和Map/Set的一些知识点
一:优先级队列优先级对列:按照元素之间的大小动态顺序出队,优先级队列处理的元素个数是动态变化的,有进有出,不像排序处理的集合个数是固定的.JDK中的优先级队列默认是最小堆,所以需要我们去修改compareTo方法.有时候在不同的场景下,对升序和降序都有要求,频繁根据不同场景修改已经写好的代码是大忌,所以我们使用Comparator比较器.Comparator比较器:需要比较的类并不需要实现此接口,而是有一个专门的类实现此接口,这个类就是为了进行比较大小用的.使用Comparator来讲JDK原创 2022-03-06 21:46:55 · 904 阅读 · 0 评论 -
java内部类?看这就够了
目录一.内部类的定义一. 成员内部类1:定义2.内部类的使用方法/规则:3.成员内部类对象的创建:4.注意事项 :二.静态内部类1.定义:2.使用方法/规则:3.静态内部类对象的创建4.补充三.方法内部类1.定义四.匿名内部类一.内部类的定义所谓的内部类,就是将类结构的定义套在另一个类的内部。例如现实生活中汽车的发动机和汽车的关系,发动机这个类就套在汽车类的内部,又或者人的心脏和人体的关系,心脏这个类套在人体类的内部。内部类也属于..原创 2022-01-23 21:22:02 · 178 阅读 · 0 评论 -
Java抽象类和接口
抽象类一.概述抽象类是普通类的超集,只是比普通类多了一些抽象方法而已,现实生活中,抽象类很多(无法映射到具体的对象的类),比如说人类,动物类。1.抽象类无法直接实例化对象,子类继承抽象类,必须覆写抽象类中的所有方法(子类是普通类)2.利用abstract关键字来定义抽象类与抽象方法,抽象方法所在的类一定是抽象类,子类必须覆写所有抽象方法。3.抽象类必须有子类,final 和 abstract 不能同时出现抽象类最大的意义就是强制要求子类覆写所有抽象方法,保证多态的正确运行。抽原创 2022-01-10 19:20:44 · 350 阅读 · 0 评论 -
面向对象编程---继承和多态
一.概述面向对象程序设计的三大原则是封装性,继承性和多态性。继承性是子类自动共享父类的数据和方法的机制,它是由类的派生功能体现的。继承具有传递性,使得一个类可以继承另一个类的属性和方法,这样通过抽象出共同的属性和方法组成新的类,便于代码的复用。而多态是指不同类型的对象调用相同的方法时产生不同的行为 。当对象接收到调用方法的消息时,根据该对象所属的类,动态选用在该类中指定要实现的算法。二.继承猫,狗,鸟都是动物的一种,分别具有同一样的特征。例如:名字,年龄等。亦拥有同样的行为,如吃这个动作。当原创 2022-01-09 20:51:37 · 1245 阅读 · 0 评论 -
2021年,我做了这些java中的链表知识点总结
链表:逻辑上连续,多个节点采用挂载的方式进行连接,物理上不连续.链表分为单链表和双链表.一丶单链表①链表的实现(增删改查):// 1、无头单向非循环链表实现public class SingleLinkedList { //头插法 public void addFirst(int val){ //尾插法} public void addLast(int val){ //任意位置插入,第一个数据节点为0号下标 } pub..原创 2021-12-28 22:25:50 · 516 阅读 · 1 评论 -
java求最小公倍数
两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。import java.util.Scanner;public class Test1129 { public static void main(String[] args) { //求最小公倍数 Scanner scanner = ne原创 2021-11-29 13:42:41 · 6952 阅读 · 0 评论 -
java中类与对象的认识
一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在原创 2021-11-27 21:59:44 · 320 阅读 · 0 评论 -
java实现汉诺塔问题
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。思路是:汉诺塔中n个圆盘,首先将1–n-1个盘子看成一个盘,由于n-1上面的盘都比n-1小,所以用n-1代替1–n-1个盘进行移动,只有两个盘子在汉诺塔上的移动是A->B,A->C,原创 2021-11-24 21:21:25 · 226 阅读 · 0 评论 -
java查找一个数组中的多数元素
多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。这个问题我们可以用多种方法来解决它,这里列举三个方法多数元素即众数,明白这个道理就变得轻而易举解决这个问题.一丶排序import java.util.Arrays;public class Test { public static void main(String[] args) { ...原创 2021-11-24 19:24:19 · 323 阅读 · 0 评论 -
java找单身狗(异或的方法和记录次数的方法)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。一.利用异或的特性异或后相同的值会变为1,0与任何数异或得到自己本身.import java.util.Arrayspublic class Main { public static void main(String[] args) { int n = 0; int[] arr = new int[]{4, 1, 2, 1, 2}; i原创 2021-11-23 11:00:00 · 283 阅读 · 0 评论 -
Java---方法重载---方法递归
一、如何定义java中的方法所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。方法方便代码的复用。语法:1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略,其中 public 表示该方法可以被其他任何代码调用2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值3、 方法名:定义的.原创 2021-11-22 17:47:42 · 101 阅读 · 0 评论 -
java- 数组-冒泡排序与判断数组是否有序
一.冒泡排序:冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生原创 2021-11-21 21:04:02 · 596 阅读 · 0 评论 -
Java中有关于数组的知识点
数组:1.关于数组的初始化操作:静态初始化:声明数组的同时赋值,数据类型[] 数组名称 = {元素的内容}int[ ] arr = {1,2,3,5};动态初始化:声明时可选赋值数据类型[] 数组名称 = new 数据类型[4];int[ ] arr = new int [4]; int[ ] arr = new int [ ]{1,2,3,5};2.关于数组长度的取得和访问元素 数组长度:arr...原创 2021-11-21 18:37:25 · 285 阅读 · 0 评论 -
利用Java求最大公约数(辗转相除法)
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。 求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。今天我们用辗转相除法求最大公约数辗转相除法辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。例如,求(319,377):∵ 319÷377=0(余319)∴(319,377)=.原创 2021-11-17 19:57:49 · 4230 阅读 · 1 评论 -
Java初阶中的逻辑控制程序知识要点
首先说一下java中的命名规则:1.类命名类命名采用大驼峰命名法,例如Tset,从第一个单词开始就首字母大写.2.项目命名全小写,多个单词通过下划线分割,例如exercise_java.3.变量命名单个单词小写,多个单词从第二个单词开始大写.(小驼峰命名法).常量:声明后值不能修改的变量,final 关键字修饰的变量,final又叫终结器.例如:final int a = 10; a = 20;这种写法是错误的.字面型常量:直接写出来的值,这种值称为字面型常量数据类型原创 2021-11-15 19:47:52 · 236 阅读 · 0 评论