基础复习

  • JDK、JRE、JVM的区别和联系
  • 面向对象编程
  • 面向过程编程和面向对象的比较
  • final、finally、finalize的区别?
  • 内存溢出和内存泄漏的区别
  • public、private、protected和默认权限比较比较
  • 什么是封装?
  • 什么是继承?
  • 什么是多态?
  • 抽象类
  • 接口
  • 接口和抽象类有什么区别?
  • == 和 equals 的区别是什么?
  • 介绍下hashcode?
  • hashcode和equals的关系
  • 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
  • java 中的 Math.round(-1.5) 等于多少?
  • String 属于基础的数据类型吗?
  • String String 类的常用方法都有那些?
  • String str="abc"与 String str=new String("abc")一样吗?
  • java 中操作字符串都有哪些类?它们之间有什么区别?
  • BIO、NIO、AIO 有什么区别?
  • 什么是异常
  • 异常体系
  • 异常的分类
  • throw 和 throws 的区别?
  • try-catch-finally 中,那部分可以省略?
  • try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
  • 异常处理的流程
  • 分布式Session问题?
  • 什么是XSS攻击?
  • SQL注入是什么,如何避免SQL注入?
  • python中sys模块和OS模块是什么?
  • Iterator---迭代器的使用带来什么好处?
  • java的序列化与反序列化是什么?好处是什么?怎么实现的?

JDK、JRE、JVM的区别和联系

  • 1、JDK

-JDK(Java SE Development Kit),Java标准开发包

-提供了编译、 运行 Java程序所需的各种工具和资源
-包括Java编译器、Java运行时环境,以及常用的Java类库等。

  • 2、JRE

-Java Runtime Environment,Java运行时环境

-Java核心类库及JVM

  • 3、JVM

-Java Virtual Machine ,Java虚拟机

-负责解释执行字节码文件

  • 4、总结

JDK 用于开发Java程序,JRE 用于运行Java程序 。(如果要运行Java写的游戏,用户只需要装jre即可)

JDK包含JRE,JRE 中包含 JVM。

面向对象编程

  • 面向过程就是分析出解决问题需要的步骤,然后用函数把这些步骤一个个实现,使用的时候依次调用,面向过程的核心是过程(C语言)
  • 面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为,面向对象的核心是对象。(Java/C++)

所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。

  • 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • 类:类是一个模板,它描述一类对象的行为和状态。

面向过程编程和面向对象的比较

面向过程:

  • 优点:性能比面向对象高
  • 缺点:没有面向对象易于可维护,易复用,易拓展
    面向对象:
  • 优点:易于可维护,易复用,易拓展,存在封装、继承、多态所以可以设计出低耦合的代码
  • 缺点:性能比面向过程低

类的基本结构

  • 属性:对象数据的描述
  • 方法:对象的行为
  • 构造方法:用于实例化对象
  • 内部类:在类中声明的类(inner class)
  • 块:分静态块与实例块
  • 类的声明:(访问权限修饰符public.default(可忽略不写,为默认))(修饰final.abstract.synchronized)class类名{ 类体 }

类的作用:类就是一个模板,定义多个对象共同的属性和方法 如:学生类(张三,李四) 手机类(华为.oppo\苹果)

final、finally、finalize的区别?

final用于修饰变量方法和类

  • final修饰变量:被修饰的变量不可变,final指的是引用不可变,final修饰的变量必须初始化,通常被修饰的变量称为常量
  • final修饰方法:被修饰的方法不允许任何子类重写,子类可以使用该方法
  • final修饰类:被修饰的类不能被继承,所有方法不能被重写

finally在异常处理中使用,无论是否捕获到异常,finally一定会执行,经常被用在释放资源的情况下
finalize是Object里面的方法,当某个对象被回收的时候才会调用这个方法(但一个对象的finalize方法只会调用一次,finalize被调用不一定会立刻回收该对象,所以有可能调用finalize之后,该对象又不需要被回收了,然后到了真正要被回收的时候,因为前面调用过一次,所以不会再次调用finalize了进而产生问题,因此不推荐使用finalize方法)

内存溢出和内存泄漏的区别

  • 内存泄漏:申请了内存空间,但是却忘掉释放,导致空间一直存在,大量的内存泄漏会导致内存溢出,可以通过重启服务来解决
  • 内存溢出:之程序在申请内存的时候,没有足够的空间拱其使用了

public、private、protected和默认权限比较比较

  • private: 类内部能访问, 类外部不能访问
  • 默认(也叫包访问权限): 类内部能访问, 同一个包中的类可以访问, 其他类不能访问.
  • protected: 类内部能访问, 子类和同一个包中的类可以访问, 其他类不能访问.(用于继承)
  • public : 类内部和类的调用者都能访问

什么是封装?

在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者.
封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了.
这样就降低了类使用者的学习和使用成本, 从而降低了代码复杂程度。
使用 private 封装属性,并提供 public 方法供类的调用者使用(Setter、Getter)

什么是继承?

代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法).
有的时候客观事物之间就存在一些关联关系(它们中有一些相同的特征,具有一些共有的东西) 那么在表示成类和对象的时候也会存在一定的关联.

  • 使用 extends关键字指定父类
  • Java 中是单继承的,想要多继承的话需要使用接口。
  • 子类会继承父类的所有 public 的字段和方法
  • 子类从父类中继承了除构造方法外的所有字段和属性(但是只能根据访问修饰限定符来访问能访问的字段)而构造方法就需要super来解决了。

super关键字
子类从父类中继承了除构造方法外的所有字段和属性。那么构造方法就需要super来解决了。

  • super代表父类对象的引用,可以调用父类的普通方法和属性
  • 子类继承父类时,子类构造的时候,需要先帮助父类构造,在子类的构造方法内部,显示调用父类的构造方法super()(如果是无参构造则可以省略不写)
  • super()必须放在子类构造方法的第一行
  • super()不能在静态方法中使用它(super代表引用,需要对象)

不想被继承就用final关键字来修饰

继承中代码的执行顺序
父类的静态变量–>父类的静态代码块–>
子类的静态变量–>子类的静态代码块–>
父类的非静态变量–>父类的普通代码块–>父类的构造方法–>
子类的非静态变量–>子类的普通代码块–>子类的构造方法

什么是多态?

通俗点来说:多态就是同一个父类引用可以引用不同的子类对象,可以调用一个同名的方法,而产生不同的行为(多态是一种思想)

多态的优势

  • 使代码变得简洁,类的调用者对类的使用成本降低
  • 降低圈复杂度(避免大量的使用if-else)
  • 可扩展性强

向上转型:父类引用 引用 子类对象(直接赋值、方法传参、返回值会发生向上转型)
动态绑定(运行时绑定)看父类引用到底指向哪一个实例,如果指向子类的实例(则调用子类的同名方法),如果执行自己父类的实例(则调用自己的同名方法),而这个过程是程序运行起来之后才决定的(而非编译时期),所以称为运行时绑定

重写(Override)

  • 针对重写的方法, 可以使用 @Override 注解来显式指定(合法性的校验)
  • 重写和重载完全不一样,不要混淆
  • 普通方法可以重写,static修饰的静态方法不能重写
  • 重写中子类的方法的访问权限大于父类的访问权限(public可以相同)
  • 重写的方法返回值不一定和父类的方法相同(但建议写成相同的,不同时子类和父类的返回值要构成继承关系这种称为协同类型)
  • 不要再构造方法中调用重写方法
  • 构造器不能被重写

** 重写和重载的区别**

  • 重写和重载都是实现多态的方式,区别是前者实现的是运行时的多态,后者是编译时的多态
  • 重写发生在子类和父类之间,重写方法的名称、返回值和参数都不能改变
  • 重载是在一个类里面,方法名称相同,而参数不同(最常用的便是构造器的重载),返回值可以相同也可以不同,但是不能作为区分的条件

抽象类

包含抽象方法(抽象方法没有具体的实现)的类我们称为 抽象类(abstract class).没有什么实际的作用,被其他类所继承

  • 抽象类不能实例化(可以简单地理解为抽象抽象肯定不能实例化啦)
  • 在抽象类中可以拥有和普通类一样的属性和方法
  • 抽象类可以被继承(不然要你干啥)可以说抽象类的的最大意义就是为了继承(但子类必须要重写抽象类的抽象方法)
  • 抽象方法不能是private的(废话,因为你抽象方法就是要被重写的,你设成private还怎么重写,因为重写方法的话的话子类的访问权限要大于父类的访问权限)

接口

接口是抽象类的更进一步,抽象类中还可以包含非抽象的方法和字段,而接口中包含的方法都是抽象方法,字段也只能静态常量。

  • 接口当中的方法都是抽象方法(默认为public absyract可以省略)
  • 接口中的方法默认使用 public 修饰
  • 接口当中的成员变量默认为public static final(定义的同时初始化)
  • 接口不可以进行实例化
  • 一个类只能继承一个抽象类或普通类,但可以继承多个接口(解决了Jave不能多继承的限制)

接口和抽象类有什么区别?

  • 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
  • 构造函数:抽象类可以有构造函数;接口不能有。
  • main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。
  • 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
  • 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

== 和 equals 的区别是什么?

== 解读

对于基本类型和引用类型 == 的作用效果是不同的,如下所示:要注意下面程序结果为true

  • 基本类型:比较的是值是否相同
  • 引用类型:比较的是引用是否相同

equals解读

  • equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等

介绍下hashcode?

hashcode()的作用是获取哈希码,它实际上是返回一个int整数,确定该对象在哈希表中的索引位置

hashcode和equals的关系

若一个方法重写了equals方法,那么他一定重写了hashcode方法

why?
因为如果没重写hashcode方法,可能会导致相同的对象散列到不同的位置,导致数据不能覆盖

  • 如果两个对象equals相等,Java运行时环境会认为他们的hashCode一定相等。
  • 如果两个对象equals不相等,他们的hashCode有可能相等。
  • 如果两个对象hashCode相等,他们equals不一定相等。
  • 如果两个对象hashCode不相等,他们的equals一定不相等

两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

不对,两个对象的 hashCode()相同,equals()不一定 true。例如hashmap的哈希冲突。

java 中的 Math.round(-1.5) 等于多少?

先加0.5,在向下取整等于-1

String 属于基础的数据类型吗?

String不属于基础的数据类型

String String 类的常用方法都有那些?

  • indexOf():返回指定字符的索引。
  • charAt():返回指定索引处的字符。
  • replace():字符串替换。
  • trim():去除字符串两端空白。
  • split():分割字符串,返回一个分割后的字符串数组。
  • getBytes():返回字符串的 byte 类型数组。
  • length():返回字符串长度。
  • toLowerCase():将字符串转成小写字母。
  • toUpperCase():将字符串转成大写字符。
  • substring():截取字符串。
  • equals():字符串比较。
  • toCharArray():将字符串变为数组

String str="abc"与 String str=new String(“abc”)一样吗?

不一样,因为内存的分配方式不一样

  • String str="abc"的方式,java 虚拟机会将其分配到常量池中;
  • 而 String str=new String(“abc”) 则会被分到堆内存中,在将“abc”字符串放入到常量池当中,相当于创建了两个对象,但无论常量池中有没有“abc”字符串,程序都会在堆中开辟一块空间存放新对象’。

java 中操作字符串都有哪些类?它们之间有什么区别?

操作字符串的类有:String、StringBuffer、StringBuilder。

  • StringBuffer、StringBuilder有reverse()方法
  • String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象(String的拼接 + 会被优化 优化为StringBuilder . append了),而StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
  • StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于
    StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

BIO、NIO、AIO 有什么区别?

  • BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
  • NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用
  • AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO的操作基于事件和回调机制。

什么是异常

异常,就是不正常的意思。指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。

  • 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理
  • 异常指的并不是语法错误.语法错了,编译不通过,不会产生字节码文件,根本不能运行。但异常可以在运行时产生

异常体系


Throwable体系:
异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error(错误)与java.lang.Exception(异常),平常所说的异常java.lang.Exception。

  • Error:错误,无法处理纠正的错误,只能事先避免,好比绝症。
  • Exception:异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行。好比感冒。

比较通俗易懂的方法是,你把代码写出来之后,有红色波浪线提示你抛出或捕获异常,这个时候正处于编译阶段,所以是编译时异常

异常的分类

我们平常说的异常就是指Exception,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。

异常(Exception)的分类:根据在编译时期还是运行时期可分为编译时异常,和运行时异常。

编译时期异常:(受查异常)在编译时期,就会检查,如果没有处理异常,则编译失败。(如输入输出、类型转换异常) 比较通俗易懂的方法是,你把代码写出来之后,有红色波浪线提示你抛出或捕获异常,这个时候正处于编译阶段,所以是编译时异常

  • 1.FileNotFoundException
  • 2.ClassNotFoundException
  • 3.SQLException
  • 4.NoSuchMethodException
  • IOException

运行时期异常:(非受查异常)在编译时期,不会报错,在运行时期会报错.。(如数学异常)

  • 1.NullPointerException
  • 2.ArithmeticException(当出现异常的运算条件时,抛出此异常)
  • 3.ClassCastException
  • 4.ArrayIndexOutOfBoundsException
  • 5.StringIndexOutOfBoundsException

throw 和 throws 的区别?

throw:

  • 表示方法内抛出某种异常对象
  • 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上throws 语句 或者在方法体内try catch 处理该异常,否则编译报错
  • 执行到 throw 语句则后面的语句块不再执行

throws:

  • 方法的定义上使用 throws 表示这个方法可能抛出某种异常
  • throws是将异常声明但是不处理,而是将异常往上传,需要由方法的调用者进行异常处理

try-catch-finally 中,那部分可以省略?

catch可以省略

try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

  • finally 执行的时机是在方法返回之前(try 或者 catch 中如果有 return 会在这个 return 之前执行finally). 但是如果finally 中也存在 return 语句, 那么就会执行 finally 中的 return,从而不会执行到 try 中原有的 return.
  • 一般我们不建议在 finally 中写 return (被编译器当做一个警告)

异常处理的流程

  • 程序先执行 try 中的代码
  • 如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配(找匹配).
  • 如果找到匹配的异常类型, 就会执行 catch 中的代码
  • 如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者.
  • 无论是否找到匹配的异常类型, finally 中的代码都会被执行到(在该方法结束之前执行).
  • 如果上层调用者也没有处理的了异常, 就继续向上传递. 一直到 main 方法也没有合适的代码处理异常, 就会交给 JVM 来进行处理,此时程序就会异常终止(jvm保底)

分布式Session问题?

互联网公司为了可以支撑更大的流量,后端往往需要多台服务器共同来支撑前端用户请求,那如果用户A服务器登录了,第二次请求的时候跑到服务B就会出现登录失效的问题
分布式Session一般会有以下几种解决方案:

  • 客户端存储:直接将信息存储在cookie中,cookie是存储在客户端上的一小段数据,客户端通过http协议进行cookie交互,通常用来存储一些不敏感的信息
  • Session复制:任何一个服务器上的Session发生改变(增删改)该节点会将这个Session的所有内容序列化,然后广播给其他所有节点
  • 共享session:将用户的Session等信息使用缓存中间件(例如Redis)来统一管理,保障分发到每一个服务器的相应结果都一致

建议采用共享Session的方案

什么是XSS攻击?

XSS攻击是由于服务器将攻击者存储的数据原原本本地显示给替他用户所导致的,比如一个存在XSS漏洞的论坛,用户发帖时就可以引入带有

  • 前端:过滤
  • 后端:转义

SQL注入是什么,如何避免SQL注入?

SQL注入就是在用户输入的字符串中加入SQL语句,如果我们设计的程序忽略了检查,那么这些输入进去的SQL语句就会被当做真正的SQL语句来运行,就会带来风险

SQL注入的原理主要 有以下4点:

  • 恶意拼接查询

  • 领用注释执行非法命令

  • 传入非法参数

  • 添加额外条件
    避免SQL注入的一些方法

  • 限制数据库的权限,给用户提供仅仅能满足其工作需求的最低权限

  • 对SQL语句中的一些特殊字符("&*;等)转义处理

  • 提供参数化查询节后,不要直接使用原生SQL

python中sys模块和OS模块是什么?

  • sys模块

该模块提供了一些变量和函数。这些变量可能被解释器使用,也可能由解释器提供。这些函数会影响解释器。本模块总是可用的。

sys常用的函数简介:

  • os模块
    这个模块提供了一个轻便的方法使用要依赖操作系统的功能。
    os常用命令:
    https://blog.csdn.net/qq_37007384/article/details/88548957?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164731542116780269825857%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164731542116780269825857&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-4-88548957.142v2article_score_rank,143v4control&utm_term=python%E4%B8%ADos%E6%A8%A1%E5%9D%97%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4&spm=1018.2226.3001.4187

Iterator—迭代器的使用带来什么好处?

迭代器—不必知道序列底层是怎么实现的,就可以利用迭代器来访问一个序列。
Java中的Iterator功能比较简单,并且只能单向移动:

  • (1)使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
  • (2) 使用next()获得序列中的下一个元素
  • (3) 使用hasNext()检查序列中是否还有元素。
  • (4) 使用remove()将迭代器新返回的元素删除。

java的序列化与反序列化是什么?好处是什么?怎么实现的?

  • java的序列化是将java对象转换为字节流的过程,而Java的反序列化是将字节流转换为java对象的过程。
  • 使用Serializable接口来实现
  • 序列化有助于数据的传输与保存

Java复习---基础复习相关推荐

  1. java面向对象基础复习

    对java基础的一个复习总结吧. 1.继承:通过使用关键字extends,子类可以继承父类所有的方法和属性,但是无法使用 private(私有) 的方法和属性,一次只能继承一个父类. 2.重写:重写( ...

  2. JAVA SE 基础复习-基本程序设计(1)

    1.java基本数据类型 int         4      最大值 0x7fffffff 2147483647=2的31次方-1  首位为符号位   最小值-2147483648  0x80000 ...

  3. java WEB 基础复习_开篇--Java Web基础知识

    本篇主要是博客的开篇,是一些很基础的知识,我写博客的目的很简单.主要是供自己学习使用,督促自己学习,希望自己能坚持下来. 当前三大主流的Web动态网页技术是PHP(Personal Home Page ...

  4. JAVA SE 基础复习-IO与序列化(4)

    1.对象序列化 我们平时使用JAVA对象的时候,所有的操作都是在内存中进行的,即对象的生存周期不会比它所依赖的JVM更长.有时候我们又需要即使JVM已经停止,但是有能够在JVM停止后仍然能够获得之前的 ...

  5. java集合基础复习

    为什么80%的码农都做不了架构师?>>>    温故知新,好一段学习时间过后到了收割的季节. java中集合java.util包下的一个集合根接口collection,其子接口lis ...

  6. java面试基础复习----基础的基础(1)

    {}与${}区别 #{}是sql预编译 ${}是字符串替换,也就是占位符,占位符就是用来替换的 MYSQL索引,为什么用索引,优缺点 1.mysql索引优点是可以保证数据的唯一性,更加快速找到需要的值 ...

  7. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  8. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  9. Java基础复习总结笔记(上)

    前言 对Java部分基础知识进行复习总结,没事可以看看. 目录 一.基础语法 1.1 Java名词 1.2 Java关键字 1.3 基本数据类型(4类8种) (1)整数类型 (2)浮点类型 (3)字符 ...

  10. 2020604 Java基础复习

    2020/6/4 Java基础复习 Java特性和优势 1.简单性: Java是在C++的语法的基础再"减减".没有头文件,没有指针,也不用分配内存,所以相对来说比较简单; 2.面 ...

最新文章

  1. sql查table,VIEW,sp, function 及 trigger 物件
  2. 计算机网络技术中的NAT,计算机网络技术中的NAT-2.ppt
  3. SPDK,软件定义存储的催化剂
  4. 上交AI研究院副院长马利庄:基于大数据的人脸识别技术进展与展望
  5. 13个非常实用的JavaScript小技巧
  6. android开发GPS定位测试(附效果图和示例)【转】
  7. win7关闭开机启动项_电脑开机非常慢?原来是有软件偷偷自启动,教你一招彻底关闭它们...
  8. 如果U盘中了文件夹隐藏病毒,怎么办?
  9. win10不能访问服务器共享文件夹权限,win10没有权限访问共享文件夹(有效解决共享文件夹权限问题)...
  10. VTK学习之激光点云动态库封装(排水管道)
  11. 区间对比_预算1015万元区间 国内在售街车综合实力对比
  12. 昆山中创张嘉平:软件成为软件工程才容易成功
  13. 2012年8月26日
  14. 直线方程和直线系方程
  15. 亚马逊linux密码,Linux、Centos、Ubuntu亚马逊服务器开启密码远程,启用root账号
  16. MySQL(六)事物(ADID,四种隔离级别)(七)索引(索引测试,原则)
  17. StartlsBack 导致屏幕闪烁的解决方法
  18. 读书笔记 来自网络
  19. Echarts3.0引入百度地图-简单说
  20. Windows系统禁止软件、驱动阻止系统息屏、睡眠。

热门文章

  1. CNN卷积神经网络原理讲解+图片识别应用(附源码)
  2. 适合初学者的 10 大机器学习项目
  3. mac adb环境变量配置
  4. PHP反三角函数,反三角函数求导公式
  5. 为什么有些PDF打印不了
  6. python攻击校园网_python爬虫 模拟登陆校园网-初级
  7. CSS居中对齐、定位的总结
  8. 目标追踪小任务(基于SIFT,LK光流,ceres)
  9. 收银系统连接不上数据服务器,收银系统服务器数据库
  10. 【常用模块】电容触摸按键模块(原理讲解、STM32实例操作)