基础知识杂谈1

一、编辑器简介:

  1、python:pycharm(收费),vscode(免费)。

  2、golang:goland(收费),vscode(免费)。

  3、java:idea(收费),eclipse(免费),MyEclipse(免费)。

  4、前端:webstorm(收费)。

  5、php:phpstorm(收费)。

  6、数据库开发:datagrip(收费)。

  7、以上可购买jetbrains公司的全家桶,一个注册码,可以都用。

  8、android:androidstudio(收费),eclipse+adt。

二、开发环境

  1、windows系统为主。

  2、有一些框架windows上面装不上,如sanic,fastapi框架,就需要在linux或mac环境上开发。

  3、远程连接linux开发,远程连linux内的docker开发。

三、编程语言的分类

  1、c:编译型,c代码写完,需要根据根据不同的平台编译,所以c写的程序最好用源代码安装,自行匹配当前环境运行。

  2、java:编译型,首先把java源码编译成字节码文件 .class,字节码文件无法直接运行在操作系统上,要通过jvm(java虚拟机,类似于python解释器)执行。

  3、go:编译型,跨平台编译成一个可执行文件。

  4、python:解释型,强类型动态语言。

  5、js:解释型,弱类型。

  6、php:web开发。

四、一切皆对象

  1、type和object的关系:

    ①type是所有类的类,包括object,包括type自己。

    ②object是所有类的基类,包括type,除了object自己。

五、赋值引用与深浅拷贝

  1、赋值引用:指向同一个内存地址。

  2、浅拷贝:各自指向的内存地址不是同一个,但是两个内存地址指向的值相同。

  3、深拷贝:各自指向完全不同的内存地址,内部继续检索,若有可变类型,会同样生成不同内存地址,只复制值,后续向内依然如此。

六、可变类型与不可变类型

  1、可变类型,不可哈希:字典,列表,集合。

  2、不可变类型,可哈希:字符串,整型,浮点型,元祖。

  3、字典的k必须是可哈希的----不可变类型。

  4、python中的参数传递:由于一切皆对象,所以传过去的都是地址,所以如果传的是可变类型,若其元素在函数内被修改而其自身的内存地址没有改变,外部的原值也会同步变化,类似于浅拷贝。

  5、参考博客:https://www.cnblogs.com/xiaoyuanqujing/articles/12008689.html。

七、字符编码

  1、计算机计量单位:

    ①bit:0或1所占位置的单位。

    ②bytes:字节,也写作<b>,8bit。

    ③Kb=1024b。

    ④Mb=1024Kb。

    ⑤Gb=1024Mb。

    ⑥Tb=1024Gb。

    ⑦Pb=1024Tb。

  2、ascii ===> gbk ===> unicode ===> utf-8。

八、闭包函数

  1、定义:

    ①定义在函数内。

    ②对外部作用域有引用。

  2、典型应用:装饰器(面向切面的编程---AOP)。

def passer(func):
    def wrapper(*args,**kwargs):
        # 新增代码
        res=func(*args,**kwargs)
        # 新增代码
        return res
    return wrapper


# 语法糖
@passer
def too():
    pass

 

原文地址:https://www.cnblogs.com/caoyu080202201/p/13216179.html