- 博客(21)
- 收藏
- 关注
原创 String、StringBuffer、StringBuilder三者的对比
1.String、StringBuffer、StringBuilder三者的对比String:不可变的字符序列;底层使用char[]存储StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储2.StringBuffer与StringBuilder的内存解析以StringBuffer为例:String str = new String();//char[]
2022-04-08 16:10:01
332
原创 String类的使用
java.lang.String类的使用1.概述String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用于存储字符串数据4.通过字面量的方式(区别于new给一个字符串赋值,此时的字符串值声明在字符串常量池中)。5.字符串常量池中是不会存储相同...
2022-04-08 16:09:11
197
原创 转发和重定向
1. 重定向与转发的区别:1.重定向访问服务器两次,转发只访问服务器一次。2.转发页面的URL不会改变,而重定向地址会改变3.转发只能转发到自己的web应用内,重定向可以重定义到任意资源路径。4.转发相当于服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,两个文件(当前文件和目标文件)属于同一次请求,前后页 共用一个request,可以通过此来传递一些数据或者session信息,request.setAttribute()和 request.getAttribute()。而
2022-03-21 21:56:36
642
转载 instance of的使用
Java关键字(一)——instanceof目录1、obj 必须为引用类型,不能是基本类型 2、obj 为 null 3、obj 为 class 类的实例对象 4、obj 为 class 接口的实现类 5、obj 为 class 类的直接或间接子类 6、问题 7、深究原理 8、instanceof 的实现策略 资料推荐 instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: 1 ...
2022-03-04 15:00:50
490
原创 原码补码反码
首先提几个概念: 原码,反码,补码原码是什么?原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码举例说明:int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得:00000000 00000000 00000000 00000011int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得:10000000 00000000 00
2022-01-21 13:11:36
665
转载 字面量,常量和变量之间的区别?
c/c++ codeint a; //变量const int b = 10; //b为常量,10为字面量string str = “hello world!”; // str 为变量,hello world!为字面量看完这个例子,我相信大家都会说,啊,可不就是这样吗?这其中可能稍微有点不太理解的就是字面量。像常量啊,变量啊,字面量在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数
2022-01-21 11:38:25
127
转载 并发与并行
并发(concurrency)和并行(parallellism)是:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 解释三:并行是在多台处理器上同时处理多个任务。如 hadoop 分布式集群,并发是在一台处理器上“同时”处理多个任务。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以
2022-01-20 11:09:18
115
原创 for循环的两种嵌套与区别
一:内外循环独立进行#include<bits/stdc++.h>int main(){ int i,j; for(i=0;i<5;i++){//外层循环 共循环5次 for(j=0;j<5;j++) //内层循环 每次输出五个* printf("* "); if(j%5==0){ printf("\n");//输出5个换行 } }} 这是输出结果 这种循环内外互不干涉,每一次内循环...
2021-08-08 22:13:32
1253
原创 数列求和C
//有一分数列:2/1,3/2,5/3,8/5,13/8,21/13,...求该数列钱20项和#include<stdio.h>//有一分数列:2/1,3/2,5/3,8/5,13/8,21/13,...求该数列钱20项和float sum(int m){ float a=2,b=1,t,c,s; for(int i=1;i<=m;i++){ c=a/b; s+=c; t=a; a=a+b; b=t; } return s;}int main(.
2021-07-26 11:14:38
130
原创 Ackerman函数
Ackerman函数在许多讲解递归的书中都提到,但似乎又对解题没有太大的意义,暂时不知道了。不过这个东西,是一个数学知识点,暂时收藏于此吧。查了一下维基百科和百度百科,表面上两个定义不一样,仔细推敲其实是一样的。(维基百科里面A(m,n)和百度百科里面A(n,m)当中的参数n、m代表含义是一样的,只是它们两个递归函数的参数的顺序写的不一样而已。)下面看看Ackerman函数:Fibonacci数列可以写出通项公式,就是用非递归的方式去下定义。但并非一切的递归函数都能用非递归方式去定义。下面讲一个
2021-07-26 10:37:18
3972
原创 一看就会-链表的插入删除查找
插入操作:插入节点的操作是将值为X的结点插入到单链表的第i个位置上。先检查插入位置的合法性,然后找到待插入位置的前驱结点,即第i-1个结点,再起后插入新的结点。//此方法为常用的前插操作void insert(LinkList head,int pos,int x){ //pos为插入的位置,x为插入的值 LinkList p=head; for(int i=0;i<pos-1;i++){ p=p->next; } Lnode *q=new Lnode; q->
2021-07-24 21:52:07
476
1
原创 Easy的链表操作之链表创建
创建链表的两种方法:1、头插法建立单链表,该方法从一个空表开始,生成新的结点,并将读取到的数据存放到新的结点的数据域中,然后将新结点插入到当前链表的表头。即头结点之后
2021-07-24 20:59:49
319
原创 简单易懂-链表
首先了解线性表,顾名思义就是线性表数据排成像一条线一样的结构。每个线性表上的数据组最多只有最多只有前后两个方向。常见的线性表结构由数组,链表,队列,栈等线性结构。而它的相对结构就是非线性表。比如二叉树堆,图,非线性中的数据并不是简单的前后关系。链表和数组的区别: 从底层结构看数组需要一块连续的内存空间来存储,对内存的要求比较高,而且数据在进行插入删除时候需要大量的数据迁移,复杂度为O(n),而链表对内存要求较低,因为链...
2021-07-16 17:55:01
84
原创 链表初始化typedef struct LNode{}LNode,*linklist的理解
typedef是对可以理解为各现有的数据类型起了一个新名字。typedef struct LNode{}LNode;相当于给struct LNode{}起了一个新名字Lnode{}比如在声明变量时,如果没有用typedef声明,自己定义变量时是这样子struct LNode 变量名如果用了typedef则变成Lnode 变量名简单来说就是更方便了。当然如果不用typedefstruct LNode{};声明变量也可以 直接 LNode 变量名,或者LNo
2021-07-15 15:58:24
2836
原创 习题4-10-1 奖金计算
题目描述 某企业发放的奖金根据利润提成。利润I低于或等于100000时,奖金可提10%;利润高于100000元,低于200000元(100000<I<=200000)时,低于100000元的部分仍按10%提成,高于100000元的部分提成比例为7.5%;200000<I<=400000时,低于200000元的部分仍按上述方法提成(下同),高于200000元的部分按5%提成;400000<I<=600000元时,高于400000元的部分按3%提成;600000<I
2021-07-15 08:05:58
264
原创 习题4-4 三个整数求最大值
有3个整数a, b, c,由键盘输入,输出其中最大的数。输入 以空格分割的三个整数。输出 三个数中的最大值,末尾换行。#include <stdio.h>//#include <algorithm>//using namespace std;int main(){int a,b,c;scanf("%d %d %d",&a,&b,&c);// printf("%d",max(a,max(b,c)));...
2021-07-15 08:03:34
329
原创 例题4-3 比较交换3个实数值,并按序输出
#include<stdio.h>int main(){double a,b,c,t;scanf("%lf %lf %lf",&a,&b,&c);if(a>b){t=b;b=a;a=t;}if(b>c){t=c;c=b;b=t;}if(a>b){t=b;b=a;a=t;}printf("%.2f %.2f %.2f",a,b,c);return 0;}
2021-07-15 07:40:19
146
原创 例题4-2 比较交换实数值
题目描述 从键盘输入2个实数,按照代数值由小到大的顺序输出这两个数。输入 用空格分隔的两个实数。输出 从小到大输出这两个实数,中间以空格来分隔,小数在前,大数在后。小数点后保留2位小数。末尾输出换行符。#include <stdio.h>#include <math.h>int main(){double a,b;scanf("%lf %lf",&a,&b);if(a<b){ pri...
2021-07-15 07:36:08
101
原创 2.2 求一元二次方程ax2+bx+c=0的根
题目描述 求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输入,且a不能为0,且保证b2-4ac>0。程序中所涉及的变量均为double类型。输入以空格分隔的一元二次方程的三个系数,双精度double类型输出 分行输出两个根如下(注意末尾的换行):r1=第一个根r2=第二个根结果输出时,宽度占7位,其中小数部分2位。#include <stdio.h>#include <math.h>int main(
2021-07-15 07:29:25
5368
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人