自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初识Go语言——常见标识符、关键字以及命名规则

初识Go语言——常见标识符、关键字以及命名规则1. 标识符:和Java、C++等编程语言中标识符的组成规则一样,由数字、字母、下划线组成,首字符不能是数字,并且区分大小写。例如:ackage mainimport "fmt"func main() { var name string var age int var _weight int var 87m int//错误 fmt.Println(name) fmt.Println(age) fmt.Println(_weight)

2021-11-26 13:53:48 443

原创 初识C++——引用

初识C++一、引用概念二、引用特性三、常引用四、引用和指针的区别一、引用概念和Java中的引用概念不同,Java中是指存放地址的变量,而在C++中,引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它 引用的变量共用同一块内存空间。通俗一点就是给别人的东西取个别名,然后用别人的东西。格式:类型& 引用变量名(对象名) = 引用实体;#include<iostream>using namespace std;void text1(){

2021-11-24 13:42:03 632

原创 初识C++——部分基础定义的认识

初识C++命名空间缺省函数函数重载命名空间//命名空间:namespace//定义一个命名空间//含义:规定作用域#include <stdio.h>#include <windows.h>namespace N1{ int a=10; int b = -1; int add(){ return a + b; }}using N1::b;using namespace N1;//命名空间的使用int main(){ //使用方法一 printf

2021-11-23 14:20:03 495

原创 初识Go语言

初识Go语言1.什么是Go语言?Go (又称Golang)是Google 的Robert Griesemer,Rob Pike 及Ken Thompson开发的一种静态强类型、编译型语言。Go语言语法与c相近,但功能上有:内存安全,GC(垃圾回收),结构形态及CSP-style并发计算。2.下载安装Golang的sdkhttps://golang.google.cn/dl/3.下载安装golang开发工具goland:安装就可以用,不需要配置,但软件是收费的。软件下载地址:https://w

2021-11-23 14:11:26 421

原创 算法篇——动归代表【打家劫舍及变种】

算法篇——动归代表【打家劫舍及变种】打家劫舍打家劫舍(2)三级目录(3)打家劫舍题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。用例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 =

2021-08-23 10:50:27 165

原创 九大常见排序算法

九大常见排序算法排序算法一:冒泡排序算法排序算法二:选择排序排序算法三:插入排序排序算法四:希尔排序排序算法五:归并排序排序算法一:冒泡排序算法基本思想:n个数比较n-1轮,第一轮有n个数,但是由于是两两比较,所以只用比较n-1次;第二轮由于前一轮结束后,最大(最小)的数已经方法第n-1位了,所以只用再比较剩下的n-1个数,要比较n-2次;以此类推,那么第i轮就要比较n-i次,所以代码为:import java.util.Arrays;public class Main { public s

2021-06-03 15:02:13 819 15

原创 Java反射机制与枚举

Java反射机制什么是Java反射机制?对于一个类,如果将它的属性设置为private,那么,对于外界,通过普通方法是无法获取到的,更不用说去更改属性的值,但是反射机制可以,它是利用编译后产生的字节码文件去获取到对应的Class对象,进而得到对应类的信息。...

2021-06-02 14:20:38 414 7

原创 JDK1.7版本下HashMap的死循环问题

JDK1.7版本下HashMap的死锁问题原因:头插法、多线程情况下、内存不可见问题;就拿两个线程来说,线程一和线程二同时执行完扩容,分别都生成了一个新的空数组,此时线程一的时间片用完,线程二完成哈希表的扩容以及数值的移动,但是线程一并不知道,所以线程一所操作的数都是在线程二已经完成扩容后的数组的前提下,在自己创的新数组中又进行了一次重复操作,使得出现循环引用的问题,详情看下图:所以在JDK1.8的时候将头插法换成了尾插,但是虽然解决了死循环的问题,但是又出现了多线程情况下数据覆盖的问题,也是由于线

2021-05-31 09:47:37 265

原创 JUC以及JVM

JUC:java.uti.concurrent;1.ReentranLocka)lock写在try之前;b)finally中进行解锁操作;2.信号量:可以控制锁的数量:Semaphorepublic static void main(String[] args) { //创建信号量 Semaphore semaphore=new Semaphore(2); ThreadPoolExecutor executor=new ThreadPoolExecu

2021-05-30 19:18:16 242 2

原创 各种锁策略

设计模式:一、单例设计模式:作用:提升程序性能;定义:整个程序的运行中,只存储一个对象;分类:饿汉模式、懒汉模式1.饿汉模式:上来不管三七二十一直接创建一个对象(随着类启动而启动,所以线程安全);public class Main2 { static class Singleton{ //1.创建私有构造方法 private Singleton(){} //2.创建一个私有的类对象 private volatile stat

2021-05-27 22:10:24 111 1

原创 多线程大杂烩

死锁:(1)定义:在多线程中(两个或以上线程),因为资源抢占而造成线程无限等待的问题。由于一个线程可以拥有多把锁,但是一个锁只能被一个线程拥有。(2)死锁造成的四个因素(同时):1.互斥条件(一个资源只能被一个线程持有);2.请求拥有条件(一个线程持有了一个资源之后,又请求另一个资源);3.不可剥夺条件(一个资源被一个线程拥有之后,如果这个线程不释放此资源,那么其他线程不能强制获得此资源);4.环路等待条件(多个线程在获取资源时形成了一个环形链);(3)如何解决死锁的问题?从以下两个条件入手

2021-05-23 17:58:07 111

原创 Java编程题之——可以到达所有点的最少点数目(某扣)

题目描述:给你一个 有向无环图 , n 个节点编号为 0 到 n-1 ,以及一个边数组 edges ,其中 edges[i] = [fromi, toi] 表示一条从点 fromi 到点 toi 的有向边。找到最小的点集使得从这些点出发能到达图中所有点。题目保证解存在且唯一。你可以以任意顺序返回这些节点编号。先说说心得:心态炸裂,想着用深搜解决,代码写出来后提交结果是这样的:通过65/66,没错,最后一个用例超时了,直接给我上了100000条数据,我直接炸了,先上深搜的代码:class Sol

2021-05-12 18:20:38 321 1

原创 回溯算法编程题代表——N皇后

回溯算法编程题代表——N皇后N 皇后 IN 皇后 IIN 皇后 In 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例一:n=4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所示,4 皇后问题存在两个不同

2021-05-08 21:32:27 130

原创 广度优先搜索搜索算法编程题两道——打开转盘锁、最小基因变化

广度优先搜索搜索算法编程题两道——打开转盘锁、最小基因变化打开转盘锁最小基因变化打开转盘锁题目链接题目描述:你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’(记住) 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,

2021-05-07 18:34:25 125

原创 广度优先搜索算法编程题代表——单词接龙

广度优先搜索算法编程题代表——单词接龙题目描述:字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:序列中第一个单词是 beginWord 。序列中最后一个单词是 endWord 。每次转换只能改变一个字母。转换过程中的中间单词必须是字典 wordList 中的单词。给你两个单词 beginWord 和 endWord 和一个字典 wordList ,找到从 beginWord 到 endWord 的 最短转换序列 中的 单词数目

2021-05-06 22:30:09 893 3

原创 线程安全以及线程安全的办法——volatile、synchronized、Lock、ReentrantLock

多线程中start方法和run方法的区别:run方法属于普通方法,而start方法是唯一启动线程的方法;run方法可以调用多次,start只可以执行一次;线程中断方式:1.使用全局自定义变量(终止的方法比较温柔,只有在当前这一次任务执行完才停止);2.使用线程提供的方法interrupt来终止线程(改变interrupted的状态);Thread.interrupted()判断完线程状态之后,就会将线程状态重新赋值为false,而Thread.currentThread.isInterrupte

2021-04-29 21:37:00 292 1

原创 初识操作系统以及线程的创建

初识操作系统一、硬件硬件组成:冯诺伊曼结构/普林斯顿体系结构注意事项:CPU和输入设备与输出设备之间不能直接交互,需要靠存储。内存和硬盘的区别:1.内存的读写速度远远大于磁盘,内存的读写速度是纳秒级别的,硬盘的读写速度是微秒级别的;2.运行的程序都在内存中运行,内存的价格远大于硬盘;3.内存中的数据不能永久的存储,当电脑重启之后数据就没了,不能持久化,而硬盘是可以持久化的;二、软件 OS——操作系统操作系统:程序的集合。组成:内核(进程管理、内存管理、文件管理、驱动管理)、其他程序

2021-04-22 21:33:05 266

原创 网络模型——TCP/IP模型

应用层:程序相关一层。协议层(传输层):端口号:知名端口号:0~1023 例:FTP 21 SSH 22 HTTP 80 HTTPS 443 DNS 53自定义端口号:1024~65535 MySQL 3306 Tomcat 8080TCP/UDP:UDP:无连接、不可靠、面向数据报。UDP最大理论长度:64KB当超过最大长度要怎样?1.不处理,把它交给网络层处理,交给网络层存在丢包风险。2.在应用层让程序去处理大包,把大包分为多个子包。UDP的使用场景:DNS(域名解析)

2021-04-20 22:36:40 451 2

原创 云服务器部署项目环境搭建

云服务器部署项目环境搭建这里以阿里云为例:一、安装JavaJDK指令:yum -y install java-1.8.0-openjdk*二、下载部署TomCat去TomCat官网下载:TomCat官网注意:别下载成为windows版本了!!!!!打开XShell7,新建会话,设置IP为公网IP(即购买的阿里云服务器的IP),应用层协议选择SSH,点击确定,并登陆服务器,登陆成功后默认在/root目录下,利用Xftp将TomCat压缩包放到服务器的/root目录下,解压。解压命令:ta

2021-04-14 18:59:57 816

原创 督促自己——Java算法题四道(某扣)——(深度优先搜索、回溯算法)

督促自己——Java算法题四道——(深度优先搜索、回溯算法)第一题:——回溯算法(中)给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 true给定 word =

2021-04-02 23:07:50 390 3

原创 督促自己——Java算法题四道(某扣)——深度优先搜索、回溯算法

督促自己——Java算法题四道——深度优先搜索、回溯算法第一题:——回溯算法给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]基本思路:针对不同路径,对每条路径分别判断,当本条路径走完,回溯,走另一条路。总而言之,递归就完事了。例如a a b、aa b

2021-03-31 19:35:24 1852 3

原创 取其精华,去其糟粕——前后端交互的计算器——servlet、html、JavaScript、Tomcat

前后端交互的计算器继上一篇配置Servlet,如果没配置好,可看我上一篇文章。当然,还必须要有Tomcat,没有可去官网自行下载。(Tomcat做的就是将本地资源可以上传至前端进行访问)。注意:Tomcat的路径必须要知道,且必须是全英文!!!!第一步:使当前项目绑定Tomcat;下一步的OK别急着点,先做紧接着的操作,OK最后点,我图片画的时候有点问题!!!!!选中打包好的war包,点击ok即可配置好。第二步:建立html文件,在webapp上右键新建html文件;<!DOCT

2021-03-30 23:34:27 2143 6

原创 初识Servlet

初识Servlet什么是servlet?servlet是个框架,用来帮助后端工程师开发Java API。如何使用Servlet去创建一个项目?使用软件:IDEA第一步:配置maven;点击File->Settings->搜索Maven并出现如下界面:第二步:点击File->new->project->Maven;完了以后,点击next;出现success代表你已经成功一半了,如果是failure那么(删除本地仓库中的内容、关闭防火墙和安全软件,点击

2021-03-29 09:17:55 2852 20

原创 请求头(request)与响应头(response)

请求头(request)与响应头(response)前端(客户端)向后端(服务器)发送请求(request),后端响应(response)请求,向前端反馈相应资源。一、请求头:由四部分组成:首行、header(头)、空行、body(存放url参数)。首行:传参方法(GET或POST)+url+版本号(例如Http1.1)。header:由多组参数(key-value)构成。空行:标志着header的结束。body:如果传参方法为GET,那么body为空,如果为POST那么传送的参数都在body

2021-03-28 22:09:56 10500 1

原创 如何定位url路径资源

如何定位url路径资源什么是url?URL是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。如何定位url路径资源?url由以下几部分组成:1.协议类型(http、https)——http加锁->https2.主机IP(或localhost)加端口号——IP唯一标识一台主机;端口号唯一标识一个进程3.主机资源的具体地址——资源(文件)路径(绝对路径或相对路径)基本格式:协议://主机IP:端口号/资源路径这样就可以定位url资源

2021-03-27 14:39:04 988

原创 督促自己——编程题大杂烩(某扣、某客)——链表、数组、N叉树、MySQL

督促自己——编程题大杂烩——链表、数组、N叉树、MySQL第一题:——链表组件给定链表头结点 head,该链表上的每个结点都有一个 唯一的整型值 。同时给定列表 G,该列表是上述链表中整型值的一个子集。返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。示例 1:输入:head: 0->1->2->3G = [0, 1, 3]输出: 2解释:链表中,0 和 1 是相连接的,且 G 中不包含 2,所以 [0,

2021-03-27 14:07:27 347

原创 督促自己——某客编程题3道(Java)——字符串查找、数组、集合

督促自己——某客编程题3道(Java)——字符串查找、数组、集合第一题:题目描述一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。本题含有多组样例输入。输入描述:输入一个string型基因序列,和i

2021-03-26 23:10:04 352

原创 督促自己——某客网编程题三道(Java)——字符串、集合、数组

某客网编程题三道(Java)——字符串、集合、数组第一题:题目描述找出字符串中第一个只出现一次的字符输入描述:输入几个非空字符串输出描述:输出第一个只出现一次的字符,如果不存在输出-1示例1输入asdfasdfoaabb复制o-1import java.util.*;public class Main{ public static void main(String[]args){ Scanner input=new Scanner(System.in)

2021-03-25 21:22:31 360 2

原创 利用HTML、CSS、JavaScript做一个计算器

利用HTML、CSS、JavaScript做一个计算器整体步骤:利用input标签设置两个数字读入行,再利用input设置四个按钮,利用onclick属性导入点击按钮时的事件。二话不说,放代码!!!!!!!!<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>计算器</title> <script src="jq

2021-03-25 19:10:48 884 3

原创 JDBC编程基础

JDBC编程基础什么是JDBC编程?JDBC全称叫Java数据库连接(Java Database Connectivity),是一种利用Java API(Java抽象接口)进而执行数据库SQL语句的一种数据库连接规范。什么是Java API?它是java.sql.*或者javax.sql.*中一些抽象类和接口组成,它为关系型数据库的操作提供了统一规范。什么是数据库驱动包?不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动“mysql-connector-

2021-03-24 11:43:54 276

原创 JavaWeb之HTML

JavaWeb之HTMLHTML 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言。HTML 可复杂、可简单,一切取决于开发者。它由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。 一对标签( tags)可以为一段文字或者一张图片添加超链接,将文字设置为斜体,改变字号,等等。一、元素——开始标签、结束标签与内容相结合,便是一个完整的元素。例如:<p>哈哈哈</p>其中叫做开始标签,"哈哈哈"叫做内容,叫做

2021-03-21 21:22:49 308

原创 Java进阶——数据结构‘栈’的应用——前、中、后缀表达式

Java进阶——数据结构‘栈’的应用——前、中、后缀表达式关于基础数学运算表达式想必大家已经耳熟能详了,例如:2+3*5-2=15一样,我们一看便知结果,按照优先级次序,从左往右依次计算,先算括号里的后算括号外的等等的运算规则进行运算,但在计算机中可没有这么多的规则,但是为什么我们在计算机上输入数字就能得到正确的结果呢?这是因为计算机在进行计算时有它专门的运算规则进行辅助计算,而这个规则就是我今天要说的前中后缀表达式。一、前缀表达式——前缀表达式的运算符位于操作数之前。举个例子:(2+((35)-2)

2021-03-13 21:48:27 370

原创 java进阶编程题——最长有效括号

java进阶编程题——最长有效括号题目描述:给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0看似简单的题,别被表象迷惑,里面的坑有很多,但是如果把题目简化,换一种方向就能做出来了:那就是将配对的括号用别的字符替换,那么最终就只需要数有多少个

2021-03-01 16:43:11 442

原创 Java进阶——泛型

Java进阶——泛型1、什么是泛型?即在编译时期为了能够同一类型,方便类型检测而采取的一种方式。因为在一些时候,数据比较多,类型也很多,所以一不小心就会混乱,使得数据乱套,而我们的IDEA在编译时期就可以检测出当前类型是否统一。拿最简单的数组为例,都知道数组中只能存放同类型数据,但是如果我们的数组是Object类型的呢?你往进放元素时,不管放什么类型的元素,都不会产生错误,那么问题来了,如果数据很多,那你要随机访问时怎么知道数据到底是什么类型,要通过什么类型去接受呢?所以泛型,油然而生。2、泛型到底

2021-01-29 19:24:16 304

原创 初识Java语言——异常与自定义异常

初识Java语言——异常与自定义异常一、异常——Exception类(所有Error和异常的八八)编译时期异常:即在编译时期就已经发现异常了。运行时期异常:即只有当程序运行起来后才能发现异常。异常不处理,就会自动交给JVM处理,那么一旦发生异常就会使得程序直接奔溃。那么,我们要知道程序一旦运行起来,如果程序出一点问题,尤其是一些常用软件,一旦出现异常,我们发现软件并没有崩溃,这是为什么呢?这里提出三个关键字try、catch、finally:try{//可能出现异常的代码}catch(/

2021-01-19 16:55:20 590

原创 初识Java语言——String类以及字符串与字符和字符数组之间的转换

初识Java语言——String类以及字符串与字符和字符数组之间的转换一、String类String类是和字符串相关的封装类。1、什么是字符串?在C语言中:用“”括起来的由字符构成的字串;末尾‘\0’结尾。在Java中没有‘\0’结尾这一说。2、存储位置在哪?堆当中的字符串常量池,且每个字符串在常量池中都是唯一的。3、如何声明一个字符串?String str="hahahaha";/////////////////////String str1=new String("hahahaha

2021-01-19 14:59:38 641

原创 初识Java语言——抽象类和接口

初识Java语言——抽象类和接口一、抽象类什么是抽象类?即包含抽象方法的类;什么是抽象方法?即只是声明有这个方法,不去实现它。统一用关键字abstract修饰。抽象类也是类;只不过它不能单独实例化一个对象;也可以被继承;抽象类中的抽象方法最终一定会被实现;二、接口什么是接口?用关键字interface修饰,为了解决类的单继承问题而引入的。接口可以扩展,用关键字extends进行扩展。interface A{}interface B{}interface C extends A

2021-01-17 18:01:30 304

原创 初识Java语言——封装、继承、多态

初识Java语言——封装、继承、多态一、封装采用private访问权限修饰符进行修饰,表明此处的数据或者方法不能被修改,保证数据的安全性。二、继承类和类之间可以通过关键字extends进行继承操作,其中被继承的类叫做基类、父类或者超类,要继承的类叫做子类或者派生类。注意在Java中类和类之间只能单继承,不能多继承。class Animal{public void eat(){System.out.println("animal eat");}}class Cat extends Anim

2021-01-17 17:05:13 597

原创 初识Java语言——顺序表和链表(基础知识2——查找,插入等算法)(后面又惊喜)

初识Java语言——顺序表和链表(基础知识2——查找,插入等算法)一、顺序表实现顺序表代码import java.util.Arrays;class MyArrayList{ private int useSize; private int[]elem; //构造方法public MyArrayList(){ this.elem=new int[6]; } //打印顺序表public void display(){ if(thi

2021-01-09 21:03:16 386

原创 初识Java语言——顺序表和单向链表(基础知识1——创建一个线性表)

初识Java语言——线性表(基础知识1——创建一个线性表)在数据结构中,按逻辑将数据的结构分为线性表和非线性表,而线性表按照存储单元是否连续分为顺序表和链表。一、顺序表顺序表你可以看成一个数组,因为它的存储单元是连续的,要访问它的元素,就需要知道首地址和偏移量,进而可以随机访问顺序表当中的值。下面来看一下如何创建一个顺序表吧。(后序补充顺表当中的算法)class ArraysList{private int usedSize;private int[]num;public ArraysList

2021-01-01 15:22:24 429

空空如也

空空如也

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

TA关注的人

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