JDBC

关于数据库的What 和 Why

之前我们在计算程序模型中提到过,在计算机世界中需要处理的几个核心问题:

HTTP协议和RESTful API

TCP/IP五层网络架构

  • 应用层(HTTP,RPC等)——直接和应用程序接口并提供常见的网络应用服务
  • 传输层(TCP)——同一个网络中链接的两个节点,如何完成端对端的连接
  • 网络层(IP)——同一个网络的机器如何去协作和传递数据,建立一条路径,保证传输数据的一致
  • 数据链路层——网线两端的设备如何传递数据
  • 物理层——一条网线如何去传输数据

数据链路层和物理层是设备工程师考虑的问题,而应用层、传输层、网络层是Web工程师该考虑的问题

Read More

线程同步——synchronized修饰符和join方法

多线程的调用可以使得程序运行的效率大幅提升,但线程的使用一方面会降低可读性,一方面给代码的运行带来随机性。针对随机性问题,synchronized修饰符可以使得某方法同时只能被一个线程调用,而join方法会让主线程等待当前子线程执行结束再继续执行。它们都能在一定程度上控制多线程程序的执行顺序。

Read More

简单排序

排序是基础的算法问题,常见的排序有插入排序、冒泡排序、快速排序等,它们分别有不同的计算复杂度。插入排序和冒泡排序的复杂度为O(n^2),而快速排序的复杂度为O(nlogn)。因此,快速排序是最常用的排序方法之一,因为它的复杂度更。然而,对简单的排序方法的理解,还是有必要的。

Read More

简单数据结构

复杂度

一个算法的复杂度,会极大影响程序运行的效率,复杂度又分为时间复杂度和空间复杂度,时间复杂度取决于程序运行时基本语句的运算次数,空间复杂度取决于程序运行时所占用的存储空间。复杂度是规模的量级,和数据量的大小成比例,当数据量基数足够大时,算法的优劣就会显示出来。

Read More