String类型为什么不可变

在学习Java的过程中,我们会被告知 String 被设计成不可变的类型。为什么 String 会被 Java 开发者有如此特殊的对待?他们的设计意图和设计理念到底是什么?因此,我带着以下三个问题,对String 进行剖析: String 真的不可变? String 底层实现: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** T
分类: 其他 发布时间: 10-21 23:17 阅读次数: 0

高阶函数概念以及map/filter/reduce

什么样的函数叫高阶函数:map(func, *iterables) --> map object   条件:1.函数接受函数作为参数      2.函数的返回值中包含函数 num_l = [1,2,3,4,5,6] b = map(lambda x:x**2,num_l) print(b) for i in b:   print(i) >>> <map object at 0x0000023023782358> #返回map对象,是迭代器   1   4   9   16   25   36
分类: 其他 发布时间: 10-21 23:17 阅读次数: 0

神经网络与机器学习第3版学习笔记-第1章 Rosenblatt感知器

神经网络与机器学习第3版学习笔记 -初学者的笔记,记录花时间思考的各种疑惑 第一章 Rosenblatt感知器 1、第32页 1.1 为什么如果第n次迭代时的内积存在符号错误,第n+1次迭代内积的符号就会正确? 已知 $\eta \left( n \right) X^T\left( n \right) X\left( n \right) >\left| W^T\left( n \right) X\left( n \right) \right|$ ························
分类: 企业开发 发布时间: 10-21 23:17 阅读次数: 0

【JZOJ5730】【luoguP2146】【Comet OJC0396】软件包管理器

description Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu使用的apt-get,Fedora/CentOS使用的yum,以及OSX下可用的homebrew都是优秀的软件包管理器。 你决定设计你自己的软件包管理器。不可避免地,你要解决软件包之间的依赖问题。如果软件包A
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

洛谷 P1119 灾后重建——dijstra

先上一波题目 https://www.luogu.org/problem/P1119 这道题我们可以将询问按时间排序 然后随着询问将相应已经重建成功的点进行操作 每次更新一个点就以他为起点跑一遍dijstra 当然这样还远远不够 因为新加入一个点可能影响到另外两个点之间的最短路 所以我们跑完dijstra之后还需要n方枚举两个点 看看他们是否能通过这个点更新最短路 这样做的复杂度 每次更新一个点复杂度是 n^2+mlogn 所以整体最差复杂度是 n^3logn 题目n最大为200 明显复杂度是
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

ES6 Promise 对象及解决回调地狱问题

概述 在JavaScript的世界中,所有代码都是单线程执行的。 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。 AJAX就是典型的异步操作。 把回调函数success(request.responseText)和fail(request.status)写到一个AJAX操作里很正常,但是不好看,而且不利于代码复用。 有没有更好的写法?比如写成这样: var ajax = ajaxGet('http://...'); ajax.ifSuccess(su
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

switch...case...语句分析(大表跟小表何时产生)

一、switch...case...的格式 1 switch(表达式) 2 { 3 case 常量表达式1: 4 语句; 5 break; 6 case 常量表达式2: 7 语句; 8 break; 9
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

12JS作用域,作用域链

##即是代码名字在某个范围内起到的作用和效果(提高程序可靠性,减少命名污染) 有全局和局部;顾名思义了这两个词 %%注意:局部中没有声明直接赋值的也是全局变量 作用域链: var num=10; function fn(){ var num=20; function fun(){ console.log(num); } fun() } fn();
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

DRF框架(六)——三大认证组件之认证组件、权限组件

drf认证组件 用户信息表 from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): mobile = models.CharField(max_length=11,unique=True) class Meta: db_table = 'user' verbose_name
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

WEEK16:javacript进阶

xxx
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

P4782 【模板】2-SAT 问题(2-SAT)

就只是模板而已 代码: #include <bits/stdc++.h> //luogu P4782 using namespace std; const int N=2e6+5; int n,m,a,va,b,vb; int dfn[N],low[N],timer=0; stack<int> s; bool vis[N]; vector<int> e[N]; int co[N],color=0; void add(int x,int y) { e[x].push_back(y);
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

Django 静态资源,请求,数据库的连接和操作

小白比会三板斧(程咬金) from django.shortcuts import render,HttpResponse,redirect 就是以上三个,需要用这种方式导入。 用法: 一、HttpResponse def login(request): return HttpResponse('hi , you') 这是返回字符串的,比如你写了一个页面后缀是 login,并且已经在urls里面绑定了,就会调用这个函数,然后return返回的字符串会在页面上显示出来。 二、render
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

mssql数据库提权(xp_cmdshell)

1.关于 “xp_cmdshell” “存储过程”:其实质就是一个“集合”,那么是什么样的结合呢,就是存储在SqlServer中预先定义好的“SQL语句集合”,说的更直白一些就是使用T-SQL语言编写好的各种小脚本共同组成的集合体,我们称之为“存储过程”。 而存储过程中的这些小脚本中,其危险性最高的“小脚本”就是扩展存储过程中的“xp_cmdshell脚本”,它可以执行操作系统的任何指令。 如果我们能够获取SA的管理员权限,我们就可以使用SA的管理权限可以直接执行扩展存储过程中的“xp_cmd
分类: 其他 发布时间: 10-21 23:01 阅读次数: 0

Django养成记

初识Django Django 静态资源,请求,数据库的连接和操作
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0

Linux学习(五)-Linux组管理和权限管理

Linux组基本介绍 在Linux中的每一个用户必须属于一个组,不能独立与组外.在Linux中每个文件有所有者,所在组,其他组的概念 所有者 所在组 其它组 改变用户所在组 1.文件/目录 所有者 文件的创建者既是文件的所有者 1.1查看文件的所有者 指令:ls -ahl 1.2修改文件所有者 指令:chown 用户名 文件名 1.3组的创建 指令:groupadd 组名 2.文件/目录 所在组 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组 2.1查看文件/目录的所在组
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0

LOJ6437. 「PKUSC2018」PKUSC [计算几何]

占坑。
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0

openwrt装载固件

方法1. 确定串口号以后(在设备管理器可以查看) 打开SecureCRT软件,选择串口,设置合适的波特率(我用的115200),然后快速连接, 板子通电启动,在启动的时候会提示按任意键中断,这时按下任意键中断(在这一步不想上传重启即可) 在浏览器输入地址192.168.1.1进入,选择自己编译的固件上传即可。 方法2. 需要BreedEnter软件 在板子供电前启动BreedEnter软件,启动软件后在启动板子会提示中断成功,然后在浏览器输入地址192.168.1.1进入,选择自己编译的固件上
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0

并发编程基础知识

一、进程的定义 狭义定义 进程是正在运行的程序的实例(an instance of a computer program that is being executed)。 广义定义 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元。在传统的操作系统中,进程即是基本的分配单元,也是基本的执行单元。 二、进程的概念 进程是一个实体。每一个进程都有他自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0

图像上划矩形

在图像上划矩形 import numpy as np import cv2 as cv img=np.zeros((400,400),np.uint8) cv.line(img,(100,100),(350,100),255,2) # (100,100)为起始点 (350,100)为终点 颜色为255,宽度为2的直线 cv.line(img,(100,100),(100,350),255,2) cv.line(img,(350,100),(350,350),255,2) cv.line(i
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0

WordPress 添加title中的logo

WordPress 添加title中的logo <!--网页标题左侧显示--> <link rel="icon" href="/favicon.png" type="image/x-icon"> <!--收藏夹显示图标--> <link rel="shortcut icon" href="/favicon.png" type="image/x-icon">
分类: 其他 发布时间: 10-21 23:00 阅读次数: 0