自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 将字符串反转的方式

import java.util.Stack;public class Main { //将字符串反转的方法 //第一种 递归方法 public static String reverse1(String str) { if (str.length() <= 1) { return str; } String left = str.substring(0, str.length()/2);

2020-07-27 22:57:22 104

原创 TCP的三次握手和四次挥手

TCP的运输连接有三个过程,即建立连接、数据传输和连接释放。一.三次握手链接这张图可以简单的描述三次握手连接的过程,那它具体是怎么连接的呢?首先,客户端请求主动连接,客户端就会向服务器发送一个包含SYN标志的TCP报文,客户端进入SYN SENT状态,等待服务器确认(SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段),同步报文会指明客户端使用的端口以及TCP连接的初始序号。第二步,服务器收到客户端发来的SYN报文后,将返回一个SYN+ACK的报文,给客户端表示收到请求,同时TCP序号

2020-07-13 16:19:08 194

原创 数组的四种拷贝方式

第一种 forpublic static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 6}; int[] ret = copyArray(array); System.out.println(Arrays.toString(ret));}private static int[] copyArray(int[] array) { int[] ret = new int[array.length];

2020-07-09 11:41:25 157

原创 方法的使用知识点总结

一.方法的基本用法什么是方法?方法就是一个代码片段,类似于"C语言"的函数。方法存在的意义?是能够模块化的组织代码(当代码规模比较复杂的时候).做到代码被重复使用, 一份代码可以在多个位置使用.让代码更好理解更简单.直接调用现有方法开发, 不必重复造轮子方法定义语法// 方法定义public static 方法返回值 方法名称([参数类型 形参 …]){方法体代码;[return 返回值];}// 方法调用返回值变量 = 方法名称(实参…);注意事项:1.方法名:要采用

2020-07-07 14:35:19 786

原创 运算符基本知识点总结

一.算术运算符0不能作为除数int a = 10;int b = 0;System.out.println(a / b);a += 1; // 等价于 a = a + 1如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值.int a = 10;int b = ++a;//先加加,则a=11,则b=a=11;System.out.println(b);//11int c

2020-07-01 15:56:46 291 1

原创 数据类型基本知识点

Java中的数据类型分为:public static void main(String[] args) { //1.整型变量 int int a = 10; System.out.println(a); //2.长整型变量 long num = 10L; System.out.println(num); //3.双精度浮点型变量 double num1 = 1.0; System.out.println(num1); dou

2020-07-01 15:21:33 243

原创 JDK JRE JVM之间的关系

一 JDKJava Development Kit Java开发工具包它是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)二 JREJava Runtime Environme Java运行时环境它是运行 Java 程序必不可少的,我们编写的Java程序也要JRE才能运行三 JVMJava Virtual Machine Java虚拟机

2020-06-27 22:13:27 76

原创 线程安全问题

public class ThreadDemo15 { static class Counter { public int count = 0; public void increase() { count++; } } public static void main(String[] args) throws InterruptedException { Counter counter =

2020-06-27 20:57:13 170

原创 多线程的案例之一单例模式中 用两种典型方式实现单例模式是否是线程安全的

两种典型的方式实现单例模式:1.饿汉模式2.懒汉模式1.饿汉模式:只要类被加载,实例就会被创建。static class Singleton { //把构造方法变成私有,此时在该类外部就无法new在这个类的实例了 private Singleton() { } //再来创建一个static的成员,表示Singleton类的唯一实现 //static和类相关,和实例无关,类在内存中只有一份,static成员也就只有一份 private static Singl

2020-06-15 12:54:38 141

原创 中断一个线程

中断一个线程,可能有两种情况:1.让线程run执行完2.调用线程的interrupt方法1.让线程run执行完,结束方式比较温和。当标记位被设置上之后,等到当前这次循环执行完了之后,再结束线程。public class ThreadDemo7 { private static boolean isQuit = false; public static void main(String[] args) throws InterruptedException { Thr

2020-06-08 15:43:10 252

原创 Thread类中start和run的区别

public class ThreadDemo4 { static class MyThread extends Thread { @Override public void run() { System.out.println("新线程"); } } public static void main(String[] args) { Thread t = new MyThread();

2020-06-08 11:54:57 98

原创 什么是索引?

如果数据库中没有索引,此时查找的时候就需要把整个表遍历一遍。没有索引,此时的查找过程就相当于一个"顺序表查找"。“顺序表查找”:1.如果针对顺序表查找,顺序表在内存中,内存访问速度快,并且数据也没有那么多,其实速度也还行。2.如果是针对数据库顺序查找,数据库的数据是在磁盘上,磁盘访问速度更慢,并且数据量可能非常多,这个速度可能就会很慢。所以索引就是为了避免数据库进行顺序查找 提高查找效率。索引可以考虑的数据结构:1.哈希表:查找效率0(1)。数据库可以考虑使用哈希表,但也有问题。哈希表的查

2020-06-01 21:08:59 304

原创 排序

常见的七大排序一.插入排序:基于线性表插入元素的方式而演化出来的1.实现方法:(1) 将整个区间分为[0, bound]已排序区间和[bound, size]待排序区间(2) 把bound位置的元素往前面已排序区间的合适位置进行插入,保证插入完毕后整体数组仍然有序public static void insertSort(int[] array) { for (int bound = 1; bound < array.length; bound++) { //处理

2020-05-19 00:15:30 81

原创 浅拷贝与深拷贝

1.浅拷贝:拷贝之后针对b操作可能影响到a2.深拷贝:原来对象a,拷贝之后的对象为b。深拷贝之后意味着对b进行的任何操作都不会影响到a浅拷贝代码举例:private static Test copy(Test a) { //浅拷贝 Test b = new Test(); b.data = a.data; return b;}public static void main(String[] args) { Test a = new Test(); a

2020-05-12 15:21:31 80

原创 Java关于对象之间大小的比较

Java中的 < > <= >= 只能针对数字类型来使用创建了两个对象来比较对象,就需要用专门的方法来完成:1.实现Comparable接口,重写其中的Compare To方法(this和o之间的比较)import java.util.ArrayList;import java.util.Collections;import java.util.List;class Card implements Comparable<Card> { public

2020-05-12 10:40:08 306

原创 Java关于对象值相等的比较

== 始终比较的是两个对象的身份, 比较的是两个引用中保存的地址的值对于新创建的类,如果没有重写equals方法,默认equals也是比较身份我们可以通过重写equals方法的方式来自定义"什么叫相等"我们可以仍然按照身份相同视为相等对于扑克牌的例子来说,我们也可以按照点数相同视为相等,也可以按照点数和花色都相同视为相等我们可以通过重写equals就可以实现按照值来比较相等class Card { public String rank; public String suit;.

2020-05-11 10:05:23 462

原创 杨辉三角

public class TestList { public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<>(); if(numRows == 0) { ...

2020-04-16 11:51:58 74

原创 抽象类和接口

一.抽象类抽象类:包含抽象方法的类,我们把它叫做抽象类1.用关键字abstract进行修饰2.在抽象类中可以有普通类的所有属性3.和普通的类 不一样的地方就是 包含了抽象方法4.和普通的类 不一样的地方就是 他不能够被实例化5.抽象类的主要作用就是用来被继承的6.抽象类是用来被继承的 不能被final所修饰7.抽象方法也不能是私有的 或者是 static的8.只要有一个类继承了这...

2020-04-09 16:57:40 80

原创 关键字this和关键字super

一.this关键字代表什么this代表当前对象的引用有关this关键字的注意事项:1.this代表当前对象的引用2.在静态方法内部,不能够使用this(j静态不依赖于对象 ,而this代表对象的引用产生矛盾)3. a.this通过点号 可以访问普通的成员变量b.this也可以在构造方法内,调用另一个构造方法。但必须放到第一行,只能在构造方法内使用c.this也可以1通过点号来访问普通...

2020-04-02 16:55:27 91

原创 方法的使用

一. 方法的基本用法1.什么是方法(1) 方法就是一个代码片段. 类似于 C 语言中的 “函数”.方法的意义就是为了让代码变得简单方法的构成: 访问修饰限定符 返回值 方法名(形式参数列表){函数体;//不止一条语句public static void main(String[] args) { Scanner scan = new Scanner(System.in); in...

2020-03-13 14:22:02 137

原创 递归求汉诺塔问题

//递归求解汉诺塔问题 public static void move(char pos1,char pos3) { System.out.print(pos1+"->"+pos3+" "); } public static void hanoi(int n,char pos1,char pos2,char pos3) { ...

2020-03-13 11:20:32 70

原创 JAVA数据类型与运算符

一.变量与类型1.数据类型(1).基本数据类型:1)数值型:a.整型:byte(1) short(2) int(4) long(8)b.浮点型:float(4) double(8)2)字符型:char(2)3)布尔型 boolean(无明确大小)(2)引用数据类型 :数组 类 接口注意事项:(1).定义的局部变量,如果没有给初始值,那么java是不能够编译通过的。(2).J...

2020-03-10 21:04:34 92

原创 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)

int main(){ int money = 0; int total = 0; int empty = 0; scanf("%d", &money);//20 if(money>0) total = money*2-1; total = money;//20 empty = money;//20 //置换 while(empty>=2) { ...

2020-02-22 11:29:47 171

原创 求出0~100000之间的所有“水仙花数”并输出

#include<math.h>int main(){ int i = 0; //1 for(i=0; i<=100000; i++) { //判断i是否为水仙花数 //1. i是几位数 int n = 1; int sum = 0; int tmp = i; while(tmp/10) { n++; tmp/=10; ...

2020-02-22 11:28:49 526

原创 用C语言在屏幕上输出以下图案

int main(){ int line = 0; int i = 0; scanf("%d", &line);//7 //打印上部分 for(i=0; i<line; i++) { //打印一行 //打印空格 int j = 0; for(j=0; j<line-1-i; j++) { printf(" "); } ...

2020-02-22 11:25:37 4437

原创 学习总结—6

指针 结构体问题一.指针是个变量,存放内存单元的地址(编号)。例:<textarea readonly="readonly" name="code" class="c"> int main()//{// int a = 10;// int *p = &a;// *p = 20;// printf("%d\n", a);// return 0;////}...

2020-02-22 11:15:34 68

原创 求一个整数存储在内存中的二进制中1的个数

//求一个整数存储在内存中的二进制中1的个数int count_one_bit(int n){ int count = 0; while (n) { count++; n = n & (n - 1); } return count;}int main(){ int a = 10; int ret = count_one_bit(a); printf("r...

2020-02-19 12:37:51 59

原创 实现两个数的交换

//实现两个数的交换int main(){ int a = 10; int b = 20; int c = 0; //方法一 c = a; a = b; b = c; //方法二 a = a + b; b = a - b; a = a - b; //不能创建临时变量(第三个变量) a = a ^ b; b = a ^ b; a = a ^ b; printf(...

2020-02-19 12:36:32 125

原创 学习总结-5

操作符问题一.算术操作符1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。2.%操作符的两个操作数必须是整数。返回的是整数之后的余数。二.移位操作符1.左移(<<)移位规则:左边抛弃,右边补零。2.右移(>>)分两种:(1):逻辑移位 左边用补充,右边丢弃。(2):算术移位 左边用原该值的符号位补充,右边丢弃。三.位操作符1.& //...

2020-02-19 12:35:17 63

原创 学习总结—4

数组问题1.数组创建,[]中要给一个常量才可以,不能使用变量2.char arr[ ] = “bit”;//4个元素char arr[ ] = {‘b’, ‘i’, ‘t’};//3个元素3.数组是使用下标来访问的4.数组的大小可以通过计算得到int arr[10] ;int sz = sizeof(arr)/sizeof(arr[0]);5.数组可以自己创建行数列数还有类型6....

2020-02-18 20:36:05 125

原创 扫雷游戏

game.h#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_COUN...

2020-02-17 15:15:14 138

原创 三子棋

game.h#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 3#define COL 3//函数声明void InitBoard(char board[ROW][COL], int row, i...

2020-02-16 20:47:48 56

原创 猜字谜游戏

#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){ printf("*************************\n"); printf("******** 1.play ******\n"); printf("******** 0.ex...

2020-02-15 19:26:18 122

原创 递归和非递归分别实现求n的阶乘(不考虑溢出的问题)

//递归和非递归分别实现求n的阶乘(不考虑溢出的问题)//递归#include<stdio.h>int Fac(int n){ if (n <= 1) return 1; else return n * Fac(n - 1);}int main(){ int n = 0; int ret = 0; scanf("%d", &n); re...

2020-02-15 19:21:18 543 1

原创 函数递归的问题

//求第n个斐波那契数nt Fib(int n){ if (n <= 2) return 1; else return Fib(n - 1) + Fib(n - 2);}int main(){ int n = 0; int ret = 0; scanf("%d", &n); ret = Fib(n); printf("%d\n", ret); r...

2020-02-15 14:07:53 66

原创 用函数实现二分查找

//写一个函数实现一个整型有序数组的二分查找int binary_search(int arr[], int k, int sz){ int left = 0; int right = sz - 1; while (left <= right) { int mid = (left + right)/2; if (arr[mid] > k) { ri...

2020-02-14 19:56:28 189

原创 折半查找方法

二分查找 / 折半查找int main(){int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int sz = sizeof(arr) / sizeof(arr[0]);int k = 7;int left = 0;int right = sz - 1;while (left <= right){int mid = (left + right ...

2020-02-13 21:15:51 318

原创 学习总结—3

1.折半查找方法(必须有序)要用下标的方法下标:元素个数减一元素个数:sizeof(arr) / sizeof(arr[0])2.strlen:字符串长度(不包括\0)3.两个字符串不能用“==”比较要用strcmp()4.strcmp-字符串比较strcpy-字符串拷贝5.通过文档学习库函数例:int main(){char buf1[20] = { 0 };char bu...

2020-02-13 21:11:55 127

原创 学习总结—2

1.if语句默认一句话,多句话加大括号。2.else就近if匹配。3.一个“=“赋值,两个”="判断。3.switch(整型表达式) case(整型常量表达式)。4.break在语句中的作用:a.switch中:实现分支。b.while中;用于永久终止循环的。5.continue在语句中的作用:a.while中:用于终止本次循环,本次循环中continue后边的代码不会再执行,直接...

2020-02-13 11:38:44 55

原创 学习总结-1

一.注释(快捷键ctrl+k/ctrl+c)/* printf(‘hehe\n’); *///printf(‘hehe\n’);不能嵌套注释(C语言)二.选择语句三.循环语句四.函数五.数组:arr[] 【】里代表数组的大小和元素数目1.数组初始化int arr【10】={};2.数组元素的下标从0开始数五.操作符1./ float a=7/2.0 打印出3.52.&gt...

2020-02-12 11:26:09 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除