自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 问答 (4)
  • 收藏
  • 关注

原创 Spring实战(二)

第二章、装配Bean创建应用程序之间协作关系的行为通常被称为装配(wiring),这也是依赖注入的本质;2.1 申明Bean2.1.1 创建Spring配置Spring是基于容器的框架,作为容器其提供了两种配置Bean的方式(1)XML配置方式;(2)注解配置方式。XML配置方式:XML中申明Bean时,Spring配置文件的根元素来源于Spring Beans的命名空间,其中主要放置Spring配置信息,包括元素的申明。Spring核心框架自带了10个命名空间配置2.1.2 申明一个简单的B

2020-11-20 09:43:58 131

原创 数据结构与算法分析-Java(一)

第一章 引论选择问题:N个数种确定其中第K大的数据;(1)N个数据读入到数组种,进行冒泡等排序方法,并返回位置为k的元素;(2)将前K个元素读取数组种并进行降序排序,然后将剩余元素与之对比,如果大于第k个元素,则插入放置到正确位置,挤出旧第k元素,剩余元素结束返回k元素;(3)字谜问题:输入是一些字母构成的一个二位数组及一组单词组成,目标找出字谜种的单词,单词存放位置可能是水平、垂直或沿对角线上任何方向放置的当前遇见的问题可能是写出一个工作程序不难,但是如果该程序运行在巨大的数据集上,那么运行时间就是

2020-11-19 13:56:10 149

原创 并发编程(二)

并发机制的底层实现Java代码编译成Java字节码,字节码被类加载器加载到JVM中,并转换成汇编指令在CPU上执行;而Java的并发机制就依赖于JVM的实现与CPU指令。volatile关键字多线程并发编程synchronized和volatile都扮演者重要的角色,其中可以将volatile视为保证共享变量“可见性”的轻量级synchronized,其不会引起上下文的切换和调度;定义与实现原理了解volatile实现原理之前,先了解其实现原理相关的CPU术语和说明;Lock前缀的指令在多核

2020-11-17 10:34:13 123

原创 并发编程(一)

并发编程的目的在于使得程序运行速度加快,而实现并发编程期间存在诸如:上下文切换的问题、死锁的问题、受限于软硬件资源的限制问题;解决上述问题能够更好的书写并发代码。上下文切换的问题如何减少上下文切换次数呢?(1)无锁并发编程,多线程竞争锁时,将会引起上下文切换,因此我们避免使用锁,如将数据的ID按照Hash算法取模分段,不同线程处理不同段的数据;(2)CAS算法,Atomic包使用CAS算法更新数据,不需要加锁;(3)使用最少线程;(4)协程,单线程中实现多个任务的调度,并在单线程里维持多个任务间的切换。

2020-11-16 14:37:58 109

原创 Spring实战(一)

Spring实战(一)第一章、Spring之旅Spring是一个开源的架构,是为了解决企业级应用开发的复杂性而创建的,且Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性与松耦方面从Spring受益。其根本的使用就是简化企业级应用开发的复杂性而创建的,使用Spring可以使得简单的Spring Bean实现之前EJB才能实现的事情。Java组件开发理念,AOP和DI为JavaBean提供了之前EJB提供的强大功能,这些技术为POJO提供了类似EJB的声明式编程模型。

2020-11-11 16:02:49 315

原创 java---泛型与包装类的初步认识

泛型泛型的定义泛型即参数化类型,定义的时候不设置具体的类型,在调用的时候才会显示具体类型;泛型的定义是宽泛的定义而非具体的定义,不局限于具体的特定类型,而是让调用者调用的时候给予具体的类型。定义的简单演示public class My<E> { private E[] array; private int size; ...}//<> 尖括号是泛型的标志...

2019-11-05 11:18:46 106

原创 java---面向对象编程【4】------接口,接口之间、接口与类之间的关系以及其含义

接口接口是抽象类的进一步转变,抽象类还可以包含非抽象方法、字段;但是接口包含的方法都是抽象方法,字段只能包含静态常量。语法规则interface A{ public abstract void print();}class Test implements A{ public void print(){ //实现代码 } public static void main(Str...

2019-11-04 18:02:36 261

原创 Java---异常的初步了解

异常程序错误分为:①逻辑问题②编译问题③运行时问题逻辑问题:程序没有按照预期的逻辑顺序执行编译问题:编译问题多因为程序未遵守正确的语法规则导致的运行时问题:程序运行过程中出现问题,并导致程序的终止异常:即程序在运行过程中出现错误时通知调用者的一种机制处理异常的风格一般处理异常的风格分为两种:①以C语言的异常处理方式②以Java语言的异常处理方式C语言型的处理方式:预先进...

2019-11-04 16:45:39 96

原创 Java项目---图书馆

//Library.book包//book包下 Book类package Library.book;public class Book { private String name; private String author; private String id ; private int price; private String type; ...

2019-11-02 14:31:33 8760

原创 Java问题---扑克牌

//Card类public class Card { public String rank; //牌面值 public String suit; //花色 public Card(String rank, String suit) { this.rank = rank; this.suit = suit; } @Over...

2019-11-02 14:21:35 174

原创 Java--面向对象编程【3】----组合、多态与反射

组合组合也表示的是类之间的相互关系,不同于继承所表示的类之间的相互关系(is - a 关系),组合表示的类之间的相互关系是has - a 关系如何理解is - a关系以及has - a 关系,is - a 关系就是类似 ”动物和猫“之间的关系,子类是猫,父类是动物,可以说猫就是动物,即 cat is a animal ,但是不能说 动物就是猫 ,这中说法不正确;简而言之,继承 的 is - ...

2019-10-21 16:56:15 115

原创 Java--面向对象编程【1】----抽象、类和对象、封装

抽象生活中的抽象简单理解可以视为艺术的写实画转变成抽象画的过程,这个过程可以称为抽象的过程,即将具体的事物,进行精炼并提取其中关键部分的行为。在生活中,人们能很快的识别出抽象画,就在于关键点的提炼上。如写实派画出的牛,经由抽象作画仅仅画出牛的几何图形,人们也能够认出这是一头牛。编程意义上的抽象,也是涵盖了精炼并提取关键内容的含义,但是这个抽象更多的指的是一个结果,一个精炼出来的精简体。我们可...

2019-10-21 15:56:01 299

原创 Java--面向对象编程【2】----继承

对象编程对象编程就是一种“编程思想”,提供常用的方法组织和编写代码。其较为重要的内容就是“抽象”、“类和对象”、“封装”、“继承”、“组合”、“多态”、“反射”包包是组织类的一种方式,即很多类放到一起。其具有①将具有一定关联关系的类放置到同一个目录下②同名的类放到不同的包中,起到命名空间类似的作用导入包中的类①直接使用java.util.Date date = new java.u...

2019-10-21 15:05:32 101

原创 Java方法的基本用法、方法递归、方法重载

方法的基本使用: 方法的定义: 访问限定符 static 方法返回值 方法名称([参数类型 形参 ......]){ 方法体内代码; [return 返回值;]}其中static 必须写上,因为main函数就是静态的且main函数只能调用静态函数,所以需要使用static修饰方法访问限定符包含: public protect ...

2019-09-16 17:08:05 150

原创 Java问题之猜数字游戏(范围 1- 100)

Random random = new Random(); Scanner scanner = new Scanner(System.in); int toGuess = random.nextInt(100) + 1; while(true){ System.out.println("请输入数字进行猜测"...

2019-09-13 19:16:49 900

原创 十进制整数转换成为二进制形式,以及十六进制形式

十进制无论转换成二进制还是十六进制本质其实大致相同。其本质就是利用类似移位操作的方式,只是移位单位不同而已。转换成为二进制相当于移位运算;我们知道每次右移相当于 /2 ,左移相当于* 2 ;故我们的十进制转换成二进制不过是转换成二进制的移位方式。如:十进制数字 13我们通过左移思想是 *2 的思想 ,将其转换成某些二进制数字根据其分布形式能够得到十进制13的结果;如果我们最低位 为...

2019-09-12 15:21:56 794

原创 Java中的变量与运算符

Java中的变量其实与C语言中的变量还是有些许差别的;原因就是Java是静态强类型语言,而C语言为静态弱类型语言。强/弱类型语言的区别主要在于类型之间的转换上。强类型的语言中不同类型之间的转换限制的很严格,而弱类型的语言则不严格。如基本类型之间的区别:int / double 之间的转换问题 int a = 10; int c = 15; double b = 20.0...

2019-09-12 13:23:43 131

原创 Java中给定三个int变量,求最大值与最小值的问题

三目运算符的方式: int a = 20; int b = 100; int c = 45; int max = (a >= b) ? a : b; max = (max >= c) ? max : c; int min = (a <= b) ? a : b;...

2019-09-12 10:33:15 454

原创 Java中给定两个int类型,交换变量的值

简单的交换变量之间的值的方式就是算术运算符;给定两个int变量,交换变量的值方式一:运用基本的算术运算符,如加减乘除下面仅列出部分,如加与乘 int a = 10; int b = 20; b = a + b; a = b - a; b = b - a; System.out.println(...

2019-09-12 10:29:05 526

原创 C++类(八)--- const成员、初始化列表、explicit关键字、static成员与友元

const修饰的类成员函数称为const成员函数class Date{public: void Display()const{ cout << "_year" << "-" << _month << "-" << _day <<endl; }private: int _year; ...

2019-08-06 20:34:31 178

原创 C++实现日期类(构造函数、拷贝构造、赋值运算符、运算符重载、日期类的自加|自减、日期减日期、日期加时间等)

头文件部分:1 #pragma once ...

2019-05-17 11:37:39 643

原创 C++类(七)---运算符重载

运算符重载是具有返回值,参数列表的具有特殊函数名的函数函数名字为:关键字operator后面接需要重载的运算符符号函数原型:返回值类型 + operator + 操作符 + 参数列表注意:形参看起来要比操作数数目少1个成员函数运算符重载分为:全局的operator和局部的operator我们常用局部的:class Date{public: Date(int...

2019-05-17 11:25:06 993

原创 C++类(六)---拷贝构造函数

拷贝构造函数创建一个与对象一模一样的新对象特征:1.拷贝构造函数是构造函数的一个重载形式2.拷贝构造函数的参数只有一个且必须引用传参,使用传值的方式会引发无穷递归调用从上面的特征我们可以得知,拷贝构造函数是构造函数的重载形式,那么拷贝构造函数有构造函数的一些特点,即拷贝构造函数函数名与构造函数一样都是类名的重复,拷贝构造函数只有单个形参,该形参是对本类类型对象的引用(一般使用con...

2019-05-17 10:23:44 245

原创 C++类(五)---析构函数

析构函数是对象在销毁时会自动调用析构函数,完成类的一些资源清理工作,而不是完成对象的处理,对象的处理是由编译器完成的析构函数的特性:1.析构函数名实在类名的前面加上符号~2.析构函数没有参数没有返回值3.一个类中只能由一个析构函数,若没有显示的定义,系统会生成默认的析构函数4.对象生命周期结束时,C++会自动调用析构函数(这与构造函数完全相反,构造函数时实例化的时候自动调用...

2019-05-14 17:21:33 188

原创 C++类(四)

类的默认成员函数6个默认成员函数分别为:构造函数、析构函数、拷贝构造函数、赋值重载函数、普通对象取地址函数、const对象取地址其实如果要说还有没有的话,还有两个默认成员函数,这两个成员函数是C++11标准添加的------移动构造与移动赋值函数构造函数:听名字好像是创建的函数,其实不然,构造函数是初始化的函数;构造函数的特性:1.函数名与类名相同2.无返回值3.对...

2019-05-14 17:13:27 89

原创 C++类(三)

this指针this指针式c++成员函数的隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作都是通过该指针去访问的。this指针的特性1.this指针的类型为*const2.只能在“成员函数”的内部使用3.this指针本质上是一个成员函数的形参,是对象调用成员函数的时候将对象地址作为实参传递给this形参。所以对象中不存在this指...

2019-05-14 16:46:04 97

原创 C++类(二)

类的作用域: 类定义了一个作用域,类中的所有成员都在类的作用域中;类中的成员可以相互访问,即使是private权限,但是因为在同一个类中,可以调用权限修饰的变量或方法。类体外定义成员的时候,必须使用域解析符指明成员的所属类是哪个。 注意:对类的变量、方法的使用必须使用类的实例化,即类这个概念必须依托一个实体实现功能以及变量的使用class Fun{public: //显...

2019-05-14 16:01:39 90

原创 C++类

C++是面向对象的,关注的是对象,将一件事情分成不同的对象,靠对象之间的相互完成。 C++的类的引入就是从结构体开始,C++中,结构体不仅能够定义变量,也可以定义函数;继而,C++将struct关键字改写为class关键字从而开始使用类的定义。 class为定义类的关键字,className为类的名字,{}为类的主体,主题中的内容定义为一个类域。class classNa...

2019-05-14 15:11:22 71

原创 C++指针与引用

我们都知道形参和实参的区别,形参所在的函数为函数定义,实参为调用中的参数:int Add(int a,int b){ int c = a + b; return c;}int main(){ print("%d\n",Add(1,2)); //int c = Add(1,2);}上述的Add函数为传值形式,传值就会存在一个问题,即生命周期的问题,一...

2019-05-14 11:35:57 71

原创 C++函数重载

函数重载通俗的理解的话就是一句话具有多个意思,一个字具有多个意思一般比如下面这段话:小心地滑第一重意思就是:小心啊,地很滑第二重的意思就是:小心地,滑 (滑滑梯么??哈哈)函数重载的概念是:在同一个作用域中能够申明几个同名的函数(我叫fun,你叫fun,它叫fun?),但是这些同名函数的形参列表(参数个数 或者 参数的类型 或者 参数的顺序)必须不同;一些人说我不给...

2019-05-14 11:15:36 133

原创 C++缺省参数

缺省参数的概念是,申明或定义函数时为函数的参数指定一个默认的值;从概念我们可以知道,缺省参数针对的是函数中的参数;而且是申明或定义函数,说明申明与定义不能同时存在缺省参数;其基本思路是:1.当调用中没有参数的时候,使用的就是定义函数的默认值2.当调用中含有参数,使用的是指定的实参2.1.当实参是与形参同类型的时候,一切Okvoid func(int a = 0) { ...

2019-05-14 10:57:07 236

原创 sed: -e expression #1, char 29: extra characters after command的问题

其实这个问题很简单,有些博主将这个问题归类于有"\"这类转义字符的原因,其实要根据自己的情况而定论。你是否了解Linux中"\"的含义,这个表示换行书写当我们使用sed 的时候如果想要书写多行,就需要使用"\"了如我们需要在第二行之后写多行内容 nl    /etc/passwd | sed -e ' 2a drink tea or ..... \               ...

2018-12-16 14:36:15 3969

原创 关于CentOS无法连接网络的问题

小伙伴们可以使用ping命令查看自己的CentOS是否能够连接网络(前提是你已经物理联网,也就是你插了网线或者连了WIFI)我们可以ping www.baidu.com 来查看自己的网络情况,如果没有ping通,可能是以下的问题1.我们虚拟机没有开通网络,也就是我们ifconfig的时候都无法查看到IP地址,该问题可以查看我的上一个博客回答2.我们ifconfig后能够查看到ip地址,...

2018-12-08 11:35:10 448

原创 关于查看不了ip地址的问题解决

我们会需要使用XShell软件登陆我们的虚拟机,这时候就需要查看IP地址信息;我们使用ifconfig命令进行查看,查阅ens33那一栏中是否有inet,inet后面跟的就是我们的IP地址如果没有的话,我们可以通过下面的步骤进行解决:ifconfig查看不到ip地址1.su root2.cd /etc/sysconfig/network-scripts3.gedit ifc...

2018-12-08 11:08:59 1099

原创 关于变量内容替换的个人看法

2018-12-08 11:01:05 269

原创 C语言中的危险函数scanf

scanf在VS编译器中提醒为危险函数,这不是危言耸听,scanf有着许多的坑,一不小心就会出错,且找错过程麻烦我们使用VS输入scanf函数的时候,VS会给我们报错,说这个函数不安全,建议使用scanf_s代替(其实scanf_s也不怎么样),这时我们如果想要去掉这个报错就需将报错信息给我们提供的_CRT_SECURE_NO_WARNINGS宏定义添加到代码段首,即我们就可以继续...

2018-11-13 11:16:12 1991

原创 VS创建的空项目出现的秒退问题

#define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdio.h&gt;int main(){ int num = 0; printf("请输入英寸值:"); scanf("%d",&amp;num); double ret = num * 2.54; printf("厘米值为: %f\n",ret); return 0;}...

2018-11-13 10:54:25 1385

原创 C语言书写的步骤(以免忘掉,强化记忆)

1.定义程序的目标在动手写程序之前,要有清晰的思路,自己想要写什么怎么写都要有个大概轮廓,否则之后在进行补充会相当麻烦2.设计程序对需要完成的内容需要怎么写,心里有个准备,用什么函数,大概流程都是什么需要考虑3.编写代码4.编译、运行、测试5.维护和修改程序编写的内容成为源代码文件,且文件名以.c结尾;其中.前面的称为基本名.后的称为扩展名代码编写过程:源代码-...

2018-11-13 10:34:14 558

原创 关于青蛙跳台阶的一些个人看法(递归)

这个问题还是可以应用递归思想去解决,递归能解决的问题大多是可能性过多、知道退出条件且之间有相互联系。青蛙跳台阶问题,说的是一个青蛙一次可以跳一个台阶或两个台阶,问我们最终跳到n台阶时共有多少种可能性?我们先考虑这个问题的结束条件,即最后只剩下1个或2个台阶时,递归可以结束。那么递归之间的关系呢?有题目可知,青蛙一次可以跳1台阶或2台阶,则总共有台阶n的可能性 可以由每次-1和-2的...

2018-11-10 17:27:08 867

原创 关于汉诺塔的一些个人看法(递归)

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。(此处为百度百科给出的关于汉诺塔的介绍)汉诺塔的问题简而言之就是存在3个长度一致处于同一水平面的圆柱(圆柱从左...

2018-11-10 17:00:11 999

空空如也

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

TA关注的人

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