LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

KORILIN

中文技术博客

利益的目标是自由,技术的终点是开源

Java 学习笔记(2020.2.6)

函数参数传的数组是引用

和 Python 一样,如果把一个数组或者列表当做函数的参数传入,是传了一个地址的引用,如果在调用的函数里直接修改了数组的值,那么原本数组的值也会跟着改变


public class Hello{
    public static void(String[] args){
        int[] a = {1,2,3};
        change(a);
    }

    public static void change(int[] b){
        b[0] = 0;
        b[1] = 0;
    }
}

按照上面的代码执行完,数组 a 的值将会变成{0,0,3}, 可以通过克隆的方法避免这种情况,通过调用 clone() 方法来获得一个复制的数组,再传入,此时传入的数组是另一个对象的引用了。


public class Hello{
    public static void(String[] args){
        int[] a = {1,2,3};
        change(a.clone());
    }

    public static void change(int[] b){
        b[0] = 0;
        b[1] = 0;
    }
}
阅读全文

蓝桥杯B组试题B:年号字串

第十届蓝桥杯大赛软件类省赛 C/C++ 大学 B 组
试题 B: 年号字串
【问题描述】

小明用字母 A 对应数字 1, B 对应 2, 以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或者更长的字符串来对应,例如 AA 对应 27, AB 对应 28, AZ 对应 52, LQ 对应 329。
请问 2019 对应的字符串是什么?

阅读全文

基于 operator 构建的 Nested-List

开发记录 2020/1/30

简介

Nested-List 是一个使用 operator 库构建的一个嵌套列表操作库,主要用于对元素不是基本数据类型的列表进行排序、删除等操作,里面的大多函数使用了 operator 库,可以简化项目代码编写量。

阅读全文

用于小型网站后端的 Web-MySQL

开发记录 2020/1/30

简介

Web-MySQL 是一个用于后端使用 Python 连接数据库的包,主要用于小型的 Web 项目开发时简化数据库连接操作,它可用于 Flask 或者 Django, 也可用于其他类型的项目开发。

它是基于 PyMySQL 构建出来的一个简单的 SQL 命令执行工具包,可以使用 pip 进行安装,主要使用 Connector 类的 executor、fetchone 和 fetchall 这 3 个功能,调用了 PyMySQL 的功能进行自动连接数据库和断开连接。

使用 Web-MySQL 的时候,需要导入 Web-MySQL 的 Connector 类,创建一个对象并初始化数据库配置,就可以调用函数对相应的 MySQL 数据库执行 SQL 命令。

阅读全文

使用 setuptools 和 twine 把项目打成 pip 包

开发记录 2020/1/25

本文章是在打包 web-mysql 和 nested-list 时根据官方教程在实践后后写下的,可以边参考官方教程边阅读本文章,这样可能有助于您理解如何去把项目打包成一个 pip 软件包

本人使用的是 Python3, 操作可能会和 Python2 有点不同,同时使用的命令是参考了其他的教程,和官方命令也不太一样,免去了许多参数的选择,更加简单。

如果希望更加全面地理解和打包 pip 软件包请参考
官方教程:https://packaging.python.org/tutorials/packaging-projects/

阅读全文

算法导论 Python 快速排序代码理解

技术理解 2020/1/25

写易班 2020 新年专栏项目的时候,想给文章按照列表里文章的点赞数和评论数的和来从大到小排序,毕竟是网站,为了用户体验,访问速度肯定是不能慢的。

但是 Python 这语言本身执行效率就堪忧。.. 以前做题目的时候,发现同样是 2 千万次循环,同样的算法,Java 几百毫秒就解决了,Python 用了 7 秒?

阅读全文

强类型与动态类型的 Python

技术理解 2019/11/10

很多人都会说到 Python 是一门强类型、动态类型的语言,为什么这么说呢?

我们先来看一下什么是强类型的语言
百度答案:强类型指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。
什么意思呢?
就是说,在编译的时候,变量的类型就可以被编译器确定,并且运行时该变量不经过强制转换将类型无法发生改变。

阅读全文

用树结构获取字符排列组合

算法代码 2019/11/10

假如有一串字符串,要对字符串里所有字符进行排列,列出所有排列组合的可能
对于这种获取所有可能性的问题我第一想到的就是用树结构来实现,显然这个问题不能用二叉树,那我们就不用二叉树了,反正也没要求一定要用 (hhhhh)

阅读全文

用树结构获取自然数拆分结果

算法代码 2019/11/10

任何一个大于 1 的自然数 n, 都可以拆分成若干个小于 n 的自然数相加,现在输入一个数 n, 列出该数的所有拆分可能
像这种获取所有可能性的问题,我第一想到的当然是。..
好吧,这次其实我第一次想到的不是树,而是 for 循环,其实就是被那么规律的排列给误导了~
但是最后还是靠树来实现了

阅读全文

数据结构基础笔记

学习笔记 2019/9/11

基本概念和术语

数据 (Data):客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称

数据元素 (Data Element):数据的基本单位,在计算机中通常作为一个整体进行考虑和处理

数据项 (Data Item):组成数据元素的、有独立含义的、不可分割的最小单位

数据对象 (Data Object):是性质相同的数据元素的集合,是数据的一个子集

阅读全文