自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++中的指针和引用

指针C++中的每一个变量都有一个内存位置,每一个内存位置都定义了可使用连子号(&)运算符访问地址,它表示了内存中的一个地址。#include <iostream>using namespace std;int main(){int val1;char var2[10];cout<<"var1 变量的地址:";cout << &var1<<endl;cout << "var2 变量的地址: ";cout &

2021-05-14 17:19:58 379 8

原创 C++笔记(基本类型, 变量作用域, 整数常量,类型限定符,存储类,函数,String)

C++编程要注意的地方:C++ 标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言。因此,在 C++ 中,Manpower 和 manpower 是两个不同的标识符。C++的基本数据类型类型关键字布尔型bool字符型char整型int浮点型float双浮点型double无类型void宽字符型wchar_t == short int基本类型的修饰符signed、unsigned、 long

2021-05-14 14:13:54 151

原创 C语言学习第7天(错误处理、递归、内存管理)默认熟悉数据结构和java基础

重点强调一下 初学者可以去https://www.runoob.com/网站学习各种语言的基础错误处理C语言不提供对错误处理的直接支持,但它可以用返回值的形式允许你访问底层数据。在发生错误的时候,大多数的C或者UNIX函数调用返回1或者NULL,同时设置一个错误代码errno,该错误代码是全局变量,表示在函数调用期间发生了错误。我们可以在errno.h头文件中找到各种各样的错误代码。总结一下:我们可以通过检查返回值来决定采用那些适当的方法去处理。程序员一般在程序初始化的时候把errno设置为0,这

2021-05-14 10:59:15 222 1

原创 C语言学习第六天(指针、函数指针、C位域、typedef、头文件、强制转换类型、预处理器、输入/输出)默认熟悉数据结构

指针使用#include <stdio.h>{ int val_value = 10; int *p ; //定义指针 p = &val_value; printf("val_value 变量地址:%p\n", p); return 0;}结果为:val_value 变量地址:0x7ffeeaae08d8什么是指针指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明

2021-05-13 17:40:01 262 1

转载 C语言学习第五天(存储类和变量的作用域)默认熟悉数据结构

存储类存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。auto 存储类auto 存储类是所有局部变量默认的存储类。register 存储类register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 ‘&’ 运算符(因为它没有内存位置)。寄存器只用于需要快速访问的变量,比如计数器。还应注意的是,定义 ‘register’ 并不意味着变量将被存储在

2021-05-13 13:05:41 95

转载 C语言学习第四天(C语言中的变量和常量)默认熟悉数据结构

一、变量1、变量的名称可以由字母、数字和下划线字符组成。变量可以在声明的时候被初始化(指定一个初始值)。初始化器由一个等号,后跟一个常量表达式组成,如下所示:type variable_name = value;下面列举几个实例:extern int d = 3, f = 5; // d 和 f 的声明与初始化int d = 3, f = 5; // 定义并初始化 d 和 fbyte z = 22; // 定义并初始化 zchar x

2021-05-13 10:40:33 104

转载 C语言学习第三天(数据类型)【本文章默认学习者有数据结构基础】

数据类型C中数据类型可以分四类基本类型枚举类型void类型派生类型整数类型类型存储大小值范围char1字节-128 ~ 127 或 0 ~ 255unsigned char1字节0 ~ 255signed char1字节-128 ~ 127int2字节或者4字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int2字节或者4字节0 到 65,535 或 0

2021-05-13 09:56:24 99

原创 C语言学习第二天(基本语法)

基本语法C语言的组成:关键字,标识符,常量,字符串值,符号标识符:用来标识变量,函数,或任何其他用户自定义项目的名称。 标识符里面不允许出现标点字符,如 @, $, % 等 有效标识符 ``` mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal ```

2021-05-13 08:53:34 89

原创 C语言学习第一天(程序结构)

C语言学习 第1天C语言程序包括以下部分编译器C语言程序包括以下部分1.预处理指令2.函数3.变量4.语句&表达式5.注释例:#include<stdio.h>// 预处理指令int main()//主函数{ /* hello world8*/ //注释 printf("hello, world! \n");//函数 return 0;//终止main()函数,并返回指0}编译器一个c语言文件执行的过程:1.打开编辑器,编写代码文本文件2.将文

2021-05-12 17:43:40 90

原创 java leetcode 算法题目 全排列

数组全排列下面展示一些 内联代码片。public class Backtracking { public static void main(String[] args) { int[] list = { 1, 2, 3, 4 , 5}; toback(list, 0, list.length-1); } public static void toback(int[] list,int curr,int size){ if(curr==size) { for(int a:list)

2021-01-16 18:12:36 86

原创 currenthashmap底层的CAS原理

currenthashmap底层的CAS原理介绍CASCAS的全称是Compare And Swap 即比较交换,其算法核心思想如下如果V值等于E值,则将V的值设为N。若V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。由于CAS操作属于乐观派,它总认为自己可以成功完成操作,当多个线程同时使用CAS操作一个变量时,只有一个会胜出,并成功更新,其余均会失败,但失败的线程并不会被挂起,仅是被告知失败,并且允许再次尝试,当然也允许失败的线程放弃操作,这点从图中也可以看出来。基于这样的原理,CAS

2020-11-30 13:39:30 1808

原创 java中的Arrays.copyOfRange()方法

Arrays.copyOfRange()方法的使用;Arrays.copyOfRange(array, i, j);// 这里的array是数组,i是上标,j是下标,复制的时候,注意这里包括下标i,不包括上标j;Arrays.copyOfRange(array, i, j);

2020-09-07 15:42:12 254

原创 应届生校招Java学习经验

应届生校招Java研发岗需要学习哪些一、编程语言1、Java语言基础:面向对象的概念、数据类型、装箱/拆箱、值传递/引用传递、String 类、关键字(final、static、super、this、transient等)、抽象类/接口、异常、IO流、反射、动态代理、序列化等。2、Java集合类:常见的集合类源码一定要看一看。比如:ArrayList、LinkedList、HashMap、TreeMap、LinkedHashMap(实现LRU)、HashSet等。这部分非常的重要,特别是 HashMa

2020-08-19 14:16:28 736 1

原创 java十进制转二进制,若十进制是负数怎么用补码表示

java中的 String s= Integer.toBinaryString(number) 是一个很好用的API函数,如果你的number是正整数,则会自动转化为普通的原码,若是number是负数,则会转化为补码。如下例:下面展示一些 内联代码片。// 函数示例String s= Integer.toBinaryString(number)// 这里的输入是-1,输出结果则是11111111111111111111111111111111,32位public static void main

2020-08-09 15:27:14 1319

原创 java-字典顺序输出的解决方法

字典顺序输出// Collections.sort(array);即可解决public static void main(String [] args) { String s="ABCD"; System.out.println(Permutation(s)); } public static ArrayList<String> Permutation(String str) { ArrayList<String> array = new ArrayList&l

2020-07-24 18:03:28 1106

原创 Exception in thread “main“ java.lang.IndexOutOfBoundsException: Index: 1, Size: 0错误解决

Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 1, Size: 0错误解决at java.util.ArrayList.rangeCheck(ArrayList.java:653)at java.util.ArrayList.get(ArrayList.java:429)at FindNumbersWithSum42.FindNumbersWithSum.FindNumbersWithSum(FindNum

2020-07-21 10:48:00 9609

原创 java刷题【一个函数用来找出字符流中第一个只出现一次的字符】

数据结构map的应用public static String FirstAppearingOnce(String str){ Map<String, Integer> maps = new LinkedHashMap<String,Integer>(); for(int i =0; i<str.length();i++){ String key = String.valueOf(str.charAt(i)); if(!maps.containsKey(

2020-07-14 16:35:37 117

原创 java中char类型和String类型的转换

char类型和String类型的转换public boolean isNumeric(char[] str) {String s = new String(str);//这种方法就可以把char类型转换为String类型}

2020-07-14 16:32:08 326

原创 map存储顺序问题

map顺序问题(接我的上篇博客)map在存储的时候,一般是无序的,我们有时在使用的时候可能不方便,这时候可以用java.util.LinkedHashMap,解决存取顺序问题// 创建一个有序map集合 Map<String, Integer> maps = new LinkedHashMap<String,Integer>();...

2020-07-14 11:54:00 3440

原创 java中containsKey方法

containsKey方法下面展示一些 内联代码片。// 判断map中是否有keyif(!map.containKey(key)){ map.put(key,1)//没有则把key存入map中};map中的containsKey(Key)方法是判断该key在map中是否有key存在。

2020-07-14 11:41:28 8194

原创 java中返回两个参数问题

java返回两个参数return 数组或集合return 数组或集合如果只返回值超过2个参数则返回数组(同一类型使用类型数组,不同类型使用Object[]。参数个数未知时,使用集合。 总而言之:只能返回一个集合,想返回两个以上的参数,根本不行。或者用全局变量,不用返回。...

2020-07-06 15:54:41 3677

原创 java 的InetAddress.getByName(String)方法

InetAddress.getByName(String)测试:String IP = “256.256.256.256”;不是一个ip地址则出现下面情况当String IP = “172.16.254.1”;时,这是一个IPv4地址,出现当String IP = “2001:0db8:85a3:0:0:8A2E:0370:7334”;这是一个IPv6地址,结果为...

2020-06-23 22:13:20 626

原创 java方法instanceof

instanceofJava中的instanceof是用来判断某个实例是不是某个类的实例。一个简单的判断方法,举例如下:例如:A instanceof B (A为某个实例,B为某个类名)如果A为B的实例,则:(A instanceof B)true 反之false...

2020-06-23 22:02:34 114

原创 高并发场景

秒杀高并发这个是我们想都不用想的一个点,一瞬间这么多人进来这不是高并发什么时候是呢?秒杀超卖恶意请求链接暴露数据库宕机解决方法:高并发这个是我们想都不用想的一个点,一瞬间这么多人进来这不是高并发什么时候是呢?秒杀秒杀的特点就是这样时间极短、 瞬间用户量大。正常的店铺营销都是用极低的价格配合上短信、APP的精准推送,吸引特别多的用户来参与这场秒杀,爽了商家苦了开发呀。秒杀大家都知道如果真的营销到位,价格诱人,几十万的流量我觉得完全不是问题,那单机的Redis我感觉3-4W的QPS还是能顶得住的,但是再高

2020-06-15 15:07:11 1047

原创 高并发场景

防止超卖场景一:买家购买的数量可以多件。场景二:秒杀活动,都时间点只能购买一件。目的:1.防止相同用户重复下单。2.检察库存准确数量。3.防止扣错库存数量。4.扣库存是的性能效率提升、不阻塞用户。主要解决方法1.利用redis的incr、decr的原子性做操作。2.利用redis的incr、decr的原子性做操作。3.sql乐观锁。...

2020-06-15 15:04:23 231

原创 计算机网络——输入网址后确认后的逻辑操作

输入网址并按下回车键那一刻起发生了什么?输入网址后,浏览器发起http请求,并将用户的需求通过tcp/ip传输协议传递到服务端,服务器接收到的用户需求,并根据用户需求做出处理后, 将“资源”通过tcp/ip传输协议传输给浏览器, 浏览器收到资源后做后续逻辑处理。输入网址后,浏览器发起http请求,并将用户的需求通过tcp/ip传输协议传递到服务端,服务器接收到的用户需求,并根据用户需求做出处理后, 将“资源”通过tcp/ip传输协议传输给浏览器, 浏览器收到资源后做后续逻辑处理。...

2020-06-15 15:02:29 233

原创 2. 类加载的过程,静态代码块在那个阶段执行?

类加载的过程,静态代码块在那个阶段执行?JVM加载类的过程:加载–>验证–>准备–>解析–>初始化,之后类就可以被使用了。静态代码块在初始化阶段执行。详细步骤:加载阶段的基本步骤1. 通过类型的完全限定名,产生一个代表该类型的二进制数据流。2. 解析这个二进制数据流为方法区内的内部数据结。3. 构创建一个表示该类型的java.lang.Class类的实例。连接阶段的基本步骤:1. 验证,确认类型符合Java语言的语义,检查各个类之间的二进制兼容性(比如final的类不用拥

2020-06-13 21:35:51 1351

原创 对象从生成到回收的过程

对象从生成到回收的过程说明一下对象创建到消亡的过程?(1) 对象的创建以及内存分配通过new关键字执行对象创建并分配内存。对应于IL中的newobj指令(2) 对象的初始化通过调用构造函数,完成对象成员的初始化(3) 对象的应用和操作完成内存的分配和资源的初始化操作,就可以使用这些资源进行一定的操作和应用。(4) 资源清理应用完对象后,必须对对象访问的资源进行清理。(5) 垃圾回收内存资源释放由GC负责。CLR完全代替开发人员管理内存,从分配到回收都有对应的机制完成。...

2020-06-13 21:34:55 662

原创 java垃圾回收(GC)

gcJava垃圾回收第一步:如何判断一个对象需要回收?引用计数法:给对象增加一个计数器,当有引用它时,计数器就加一,当引用失效时,计数器就减一;(java已经不在用这种方法)。可达性分析法:通过一系列称为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索走过的路径称之为"引用链",当一个对象到GC Roots没有任何的引用链相连时(从GC Roots到这个对象不可达)时,证明此对象是不可用的;那些对象可以作为Gc root?虚拟机栈(栈帧中的本地变量表)中的引用对象;方法

2020-06-12 11:03:35 108

原创 字符串分割符号的使用

String.split("\s+")可以把字符串中的多余空格给去除,如下图

2020-06-08 16:36:23 545

原创 字符串操作

字符串中空格的几种操作分类1.str.trim(); //去掉首尾空格2.str.replace(" “,”"); //去除所有空格,包括首尾、中间3.str.replaceAll(" “, “”); //去掉所有空格,包括首尾、中间4.str.replaceAll(” +",""); //去掉所有空格,包括首尾、中间5.str.replaceAll("\s", “”); //可以替换大部分空白字符, 不限于空格 ;\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个。**...

2020-06-08 13:00:20 87

原创 java_substring方法

substring(int startindex,int endindex)简介String s = “****”;s.substring(int startindex, int endindex),是一个截取子字符串的方法,可以把字符串的s的startindex位置到endindex位置给截取出来。但要注意不要越界。...

2020-06-02 16:14:47 279

原创 java-----indexOf()方法

indexOf()简介indexOf(String s):返回指定字符s在字符串中的第一次出现的位置,如果字符串中没有这个字符,则返回-1;indexOf(String s,int index):返回index位置开始查找指定字符s在字符串中第一次出现的位置,如果字符串中没有这样的字符,返回-1;...

2020-06-02 10:58:14 260

原创 线程池

线程池详解Java线程池线程是调度cpu的最小单元,也叫轻量级进程LWP(light weight process)两种线程模型1.用户级线程(ULT):用户程序实现,不依赖操作系统核心,应用(app)提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/内核态的切换,速度快。内核对ULT无感知,线程阻塞进程(包括它所有的线程)阻塞。OS不管,app管理2.内核级线程(KLT):系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程不会引起进程阻塞。在多处理器系统上,多线程在

2020-05-29 17:04:43 90

原创 虚拟机类加载机制

虚拟机类加载双亲委派模型除了顶层的启动类加载器外,其余的类加载器都应该由自己的父类加载器。这里的父子关系通常是子类通过组合关系而不是继承关系来复用父类加载器的代码。为什么要实现双亲委派模型Java类随着它的类加载器具备了带有优先级的层次关系,确保了各种加载环境的加载顺序,即防止内存中出现多份同样的字节码。保证了运行的安全性,防止不可信类扮演可信类。...

2020-05-27 16:29:50 71

原创 数据库基本操作

数据库的几个操作(如果你想真的学习数据库操作,还是要安装mySQL之类的软件进行实际操作的)往数据库中插入数据INSERT INTO ***INSERT INTO *** VALUES();查询 select from ***Mysql 常用数据类型:数值;日期;字符串创表create tables ***数据类型如何选择?日期 选择按照格式,数值和字符串按照大小。删除数据delete from *** value name = ‘***’修改数据Update

2020-05-26 09:41:38 156

原创 设计模式

几种简单的设计模式叙述单例模式饿汉式;懒汉式2工厂模式:(创建类的模式)1.普通工厂方法模式:建立一个工厂类,对实现了同一接口的一些类进行实例创建。2.多个工厂方法模式:是对普通工厂模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。3.静态工厂方法模式:将多个工厂模式的方法设为静态的,不需要创建实例,直接调用即可4.抽象工厂方法模式:创建多个工厂类,这样一旦需要添加新功能,直接增加新的工厂类即可,不需要修改代码。建

2020-05-25 14:44:40 78

原创 java锁的基础

java编程中的各种锁的特点及场景锁synchronizedVolatileJava中的锁是什么Java中的常见的锁锁使用的注意事项适用场景:Synchronized锁升级的原理是什么?Synchronized锁升级的过程:如何避免死锁?避免死锁的方法:什么是活锁和饥锁?Java中有那些无锁技术来解决并发问题?如何使用?Synchronized和volatile区别是什么Synchronized 和reentrantLock区别是什么?乐观锁与悲观锁Volatile关键字能否保证线程安全?锁synchr

2020-05-24 10:05:23 177

空空如也

空空如也

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

TA关注的人

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