String类型为什么不可变
在学习Java的过程中,我们会被告知 String 被设计成不可变的类型。为什么 String 会被 Java 开发者有如此特殊的对待?他们的设计意图和设计理念到底是什么?因此,我带着以下三个问题,对String 进行剖析: String 真的不可变? String 底层实现: public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** T
高阶函数概念以及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
神经网络与机器学习第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|$ ························
【JZOJ5730】【luoguP2146】【Comet OJC0396】软件包管理器
description Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu使用的apt-get,Fedora/CentOS使用的yum,以及OSX下可用的homebrew都是优秀的软件包管理器。 你决定设计你自己的软件包管理器。不可避免地,你要解决软件包之间的依赖问题。如果软件包A
洛谷 P1119 灾后重建——dijstra
先上一波题目 https://www.luogu.org/problem/P1119 这道题我们可以将询问按时间排序 然后随着询问将相应已经重建成功的点进行操作 每次更新一个点就以他为起点跑一遍dijstra 当然这样还远远不够 因为新加入一个点可能影响到另外两个点之间的最短路 所以我们跑完dijstra之后还需要n方枚举两个点 看看他们是否能通过这个点更新最短路 这样做的复杂度 每次更新一个点复杂度是 n^2+mlogn 所以整体最差复杂度是 n^3logn 题目n最大为200 明显复杂度是
ES6 Promise 对象及解决回调地狱问题
概述 在JavaScript的世界中,所有代码都是单线程执行的。 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。 AJAX就是典型的异步操作。 把回调函数success(request.responseText)和fail(request.status)写到一个AJAX操作里很正常,但是不好看,而且不利于代码复用。 有没有更好的写法?比如写成这样: var ajax = ajaxGet('http://...');
ajax.ifSuccess(su
switch...case...语句分析(大表跟小表何时产生)
一、switch...case...的格式 1 switch(表达式)
2 {
3 case 常量表达式1:
4 语句;
5 break;
6 case 常量表达式2:
7 语句;
8 break;
9
12JS作用域,作用域链
##即是代码名字在某个范围内起到的作用和效果(提高程序可靠性,减少命名污染) 有全局和局部;顾名思义了这两个词 %%注意:局部中没有声明直接赋值的也是全局变量 作用域链: var num=10; function fn(){ var num=20; function fun(){ console.log(num); } fun() } fn();
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
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);
Django 静态资源,请求,数据库的连接和操作
小白比会三板斧(程咬金) from django.shortcuts import render,HttpResponse,redirect 就是以上三个,需要用这种方式导入。 用法: 一、HttpResponse def login(request):
return HttpResponse('hi , you') 这是返回字符串的,比如你写了一个页面后缀是 login,并且已经在urls里面绑定了,就会调用这个函数,然后return返回的字符串会在页面上显示出来。 二、render
mssql数据库提权(xp_cmdshell)
1.关于 “xp_cmdshell” “存储过程”:其实质就是一个“集合”,那么是什么样的结合呢,就是存储在SqlServer中预先定义好的“SQL语句集合”,说的更直白一些就是使用T-SQL语言编写好的各种小脚本共同组成的集合体,我们称之为“存储过程”。 而存储过程中的这些小脚本中,其危险性最高的“小脚本”就是扩展存储过程中的“xp_cmdshell脚本”,它可以执行操作系统的任何指令。 如果我们能够获取SA的管理员权限,我们就可以使用SA的管理权限可以直接执行扩展存储过程中的“xp_cmd
Linux学习(五)-Linux组管理和权限管理
Linux组基本介绍 在Linux中的每一个用户必须属于一个组,不能独立与组外.在Linux中每个文件有所有者,所在组,其他组的概念 所有者 所在组 其它组 改变用户所在组 1.文件/目录 所有者 文件的创建者既是文件的所有者 1.1查看文件的所有者 指令:ls -ahl 1.2修改文件所有者 指令:chown 用户名 文件名 1.3组的创建 指令:groupadd 组名 2.文件/目录 所在组 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组 2.1查看文件/目录的所在组
openwrt装载固件
方法1. 确定串口号以后(在设备管理器可以查看) 打开SecureCRT软件,选择串口,设置合适的波特率(我用的115200),然后快速连接, 板子通电启动,在启动的时候会提示按任意键中断,这时按下任意键中断(在这一步不想上传重启即可) 在浏览器输入地址192.168.1.1进入,选择自己编译的固件上传即可。 方法2. 需要BreedEnter软件 在板子供电前启动BreedEnter软件,启动软件后在启动板子会提示中断成功,然后在浏览器输入地址192.168.1.1进入,选择自己编译的固件上
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">
今日推荐
周排行