随笔分类 -  编程基础

摘要:Java8 新特性中有几个比较主要的特性,Lambda 表达式、函数式接口、方法引用和几个新增库 Stream API、Optional 类等。 Lambda 表达式简介 什么是 Lambda ? Lambda 表达式其实就是一种匿名函数,在这之前大家可能还接触过匿名内部类,虽然也是一种匿名函数,但 阅读全文
posted @ 2023-04-03 16:22 Juno3550 阅读(74) 评论(0) 推荐(0)
摘要:Go 语言标准库内建提供了 net/http 包,涵盖了 HTTP 客户端和服务端的具体实现,使得我们可以很方便地编写 HTTP 客户端或服务端的程序。 HTTP 服务端 示例: package main import ( "fmt" "net/http" ) //服务端编写的业务逻辑处理程序 —— 阅读全文
posted @ 2023-03-22 22:36 Juno3550 阅读(75) 评论(0) 推荐(0)
摘要:Sync(锁) 在前面讲 channel 的时候,我们说到在 Go 语言并发编程中,倡导使用通信共享内存,不要使用共享内存通信,即 goroutine 之间尽量通过 channel 来协作。 而在其他的传统语言中,都是通过共享内存加上锁机制来保证并发安全的,同样 Go 语言也提供了对共享内存并发安全 阅读全文
posted @ 2023-03-21 23:17 Juno3550 阅读(324) 评论(0) 推荐(0)
摘要:协程介绍 什么是协程? 协程,又称微线程,英文为 Coroutine。 协程可以理解为用户态线程,是比线程更小的执行单元。为啥说它是一个执行单元?因为它自带 CPU 上下文。这样只要在合适的时机,我们可以把一个协程切换到另一个协程。只要这个过程中保存或恢复 CPU 上下文,那么程序还是可以运行的。 阅读全文
posted @ 2023-03-20 23:05 Juno3550 阅读(1542) 评论(0) 推荐(0)
摘要:文件操作 创建文件 Go 语言中提供了一个 Create() 函数用于创建文件。 该函数在创建文件时,首先会判断要创建的文件是否存在,如果不存在,则创建,如果存在,会先将文件中已有的数据清空。 同时,当文件创建成功后,该文件会默认的打开,所以不用再执行打开操作,可以直接向该文件中写入数据。 创建文件 阅读全文
posted @ 2023-03-14 00:19 Juno3550 阅读(121) 评论(0) 推荐(0)
摘要:error 接口 error 基础使用 Go 语言引入了一个关于错误处理的标准模式,即 error 接口,它是 Go 语言内建的接口类型,该接口的定义如下: type error interface { Error() string } 由于 Go 的函数支持多返回值,所以一般会用 error 作为 阅读全文
posted @ 2023-03-13 00:42 Juno3550 阅读(61) 评论(0) 推荐(0)
摘要:面向对象介绍 面向对象和面向过程都是解决问题的一种思路。 面向过程: 是一种以过程为中心的编程思想,实现功能的每一步都是自己实现的。面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,尽量忽略面向对象的复杂语法,即面向过程是“强调做什么,而不是以什么形式去做”。 开发过程的思路是将数据与 阅读全文
posted @ 2023-03-12 00:54 Juno3550 阅读(165) 评论(0) 推荐(0)
摘要:数组 所谓的数组,是指存放在连续内存空间上的相同类型数据的集合。 示例:数组定义和赋值 // 定义数组 var arr [10]int // 数组的长度定义只能用常量,且不能改变 fmt.Println(len(arr)) // 打印数组长度 // 定义时,元素已有默认值(基本数据类型的默认值) / 阅读全文
posted @ 2023-03-08 13:43 Juno3550 阅读(141) 评论(2) 推荐(0)
摘要:导包 示例:工程结构如下 GOPATH 设置为工程根目录(E:\GO_PROJECT) test1.go: package package_test import "fmt" /* 定义函数 */ func Func1() { fmt.Println("test1 func1") } test2.g 阅读全文
posted @ 2023-03-07 01:38 Juno3550 阅读(145) 评论(0) 推荐(0)
摘要:Golang 介绍 “Golang 是一种开源的程序设计语言,它旨在使得人们能够方便地构建简单、可靠、高效率的软件。” —— golang.org GO 语言借鉴了 Python 等其它编程语言简单易学、开发效率高的优势,同时针对多处理器(多核 CPU)系统的程序进行了优化(让每核 CPU 都能够执 阅读全文
posted @ 2023-03-06 00:37 Juno3550 阅读(157) 评论(0) 推荐(0)
摘要:lombok 简介 lombok(官网)提供了简单的注解形式,以简化或消除一些必须要有但又显得臃肿的 Java 代码,尤其是针对 POJO 类。 配置安装 步骤一:导入依赖 <!--简化代码的工具包--> <dependency> <groupId>org.projectlombok</groupI 阅读全文
posted @ 2022-02-20 00:33 Juno3550 阅读(136) 评论(0) 推荐(0)
摘要:引言 对于 Java 程序员来说,空指针一直是恼人的问题,我们在开发中经常会受到 NullPointerException 的蹂躏和壁咚。Java 的发明者也承认这是一个巨大的设计错误。 那么关于 null,我们应该知道下面这几件事情来有效地了解 null,从而避免很多由 null 引起的错误。 大 阅读全文
posted @ 2022-02-16 17:51 Juno3550 阅读(223) 评论(0) 推荐(0)
摘要:网络编程简介 网络编程:指在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。 网络编程三要素: IP 地址:网络中设备的唯一标识。 端口号:设备上应用程序的唯一标识。(用两个字节表示的整数,它的取值范围是 065535。其中,01023 之间的端口号用于一些知名的网络服务和应用,普通的应用 阅读全文
posted @ 2021-12-20 12:57 Juno3550 阅读(114) 评论(0) 推荐(0)
摘要:YAML 简介 什么是 YAML ? YAML(YAML Ain't Markup Language,即 YAML 不是一种标记语言),也可以叫做 YML 。YAML 是一种直观的、能够被电脑识别的数据序列化格式,容易被人类阅读,容易和脚本语言交互,可以被支持 YAML 库的不同编程语言程序所导入( 阅读全文
posted @ 2021-11-20 23:02 Juno3550 阅读(1527) 评论(0) 推荐(0)
摘要:String 类 String 概述 String 类在 java.lang 包下,所以使用的时候不需要导包。 String 类代表字符串,Java 程序中的所有字符串文字(例如"abc")都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。 字符串不可 阅读全文
posted @ 2021-11-15 12:47 Juno3550 阅读(145) 评论(0) 推荐(0)
摘要:JSON 序列化 API 序列化指把对象通过流的方式存储到文件中,反序列化则是指把文件中的字节内容读出来并还原成 Java 对象。 JSON 序列化是快速编写 Java 单元测试用例的技巧之一。这里以 Fastjson 为例,介绍一些 JSON 序列化技巧。 Fastjson 简介 Fastjson 阅读全文
posted @ 2021-10-21 23:50 Juno3550 阅读(6827) 评论(0) 推荐(0)
摘要:Maven 介绍 什么是 Maven ? 在学习 Maven 之前,我们先来看一下,没使用 Maven 构建的项目都会有哪些问题。 假设你现在做了一个 CRM 的系统,项目中肯定要用到一些 jar 包,比如说 mybatis、log4j、JUnit 等。除了这些之外,还有可能用到我们同事开发的其他的 阅读全文
posted @ 2021-10-19 00:25 Juno3550 阅读(89) 评论(0) 推荐(0)
摘要:单例设计模式 什么是单例设计模式? 单例设计模式,即保证一个类在内存中只有一个对象。 单例设计模式有两种实现方式,分别是饿汉单例设计模式和懒汉单例设计模式 推荐使用饿汉单例设计模式,因为懒汉单例设计模式会存在线程安全问题,解决方案如下示例。 饿汉单例设计模式 设计步骤: 私有化构造函数。 声明本类中 阅读全文
posted @ 2021-10-15 14:30 Juno3550 阅读(70) 评论(0) 推荐(0)
摘要:什么是正则表达式? 正则表达式(regex):通常被用来检索、替换那些符合某个模式(规则)的文本。 格式: 字符串.matches(匹配规则); // 并且会返回 boolean 元字符 表示字符 元字符 匹配规则说明 . 匹配任何字符(与行结束符可能匹配也可能不匹配) \d 匹配数字,即 [0-9 阅读全文
posted @ 2021-10-15 11:54 Juno3550 阅读(241) 评论(0) 推荐(0)
摘要:包(Package)介绍 包:本质上就是文件夹。 包的作用 解决类名重复产生冲突的问题(后编译的类名会把前面的类名覆盖掉)。 便于软件版本的发布。 包的定义格式 都是小写字母。 多级包之间使用"."进行分割。 多级包的定义规范:公司的网站地址翻转(去掉 www)。 比如百度的网站址为 www.bai 阅读全文
posted @ 2021-10-12 12:05 Juno3550 阅读(527) 评论(0) 推荐(0)