代码
调试技术
数据库
- 《Getting started with impala》
- 《mysql 必知必会》
- 《mysql 性能调优与架构实践》
- 《Mysql 技术内幕 InnoDB 存储引擎》
- 《Redis 实战》
- 《Redis 深度历险核心原理和应用实践》
- 《redis设计与实现》
- 《七周七数据库》
- 《深入浅出mysql》
- 《高性能mysql第三版》
- 《MySQL是怎样运行的》
前端
GOLANG
- 《1 The Go Programming Language》
- 《2 The Go Programming Language》
- 《3 The Go Programming Language》
- 《Build Web Application With Golang》
- 《Go101》
- 《Network Programming with go》
- 《Building Microservices With Go》
- 《Building Restful Web Services with Go》
- 《Concurrency In Go》
- 《Go In Action(Go 实战)》
- 《Go学习笔记语言详解》
- 《Go学习笔记源码剖析》
- 《Go语言编程》
JAVA
网络
心理学
PYTHON
创业
UNIX/LINUX
分布式
系统设计
搜索引擎
开发工具
- 《Practical Vim》
- 《Vim8文本处理实战》
- 《Learn vim scrpt the hard way》
- 《Pro Git》
- 《Mastering Vim》
- 《Mastering Vim Quickly》
思维
源码
网站架构微服务
- 《微服务架构设计模式》
- 《从0开始学架构》
- 《web scalavility for startup engineers》
- 《designdatainstensive_application》
- 《designdatainstensive_application2》
- 《clean_architecture》
- 《微服务实战》
- 《微服务设计》
软件工程/项目管理
运维
金融理财
写作
互联网
区块链
技术演讲网课
- 《哔哩哔哩的go微服务实战》
- 《go业务基础库之Error&Context》
- 《Go同步和并发设计模式》
- 《300分钟吃透分布式缓存》
- 《DDD实战课》
- 《分布式技术原理与实战45讲》
- 《架构设计面试精讲》
- 《高并发系统设计40问》
- 《java并发编程78讲》
- 《中间件核心技术与实战讲》
职场
《java basic introduction》
1. 入门
class HelloWorld {
public static void main(String [] args) {
System.out.println("hello");
}
}
classpath 环境变量:java虚拟机需要运行一个类,会在定义的路径中寻找所需要的class文件 自动设置为当前目录。
java sourcecode -> class字节码文件(javac compile) -> jvm 将字节码文件加载到内存(类加载器) -> 执行
package
java 通过包组织类,声明用 package
import package.class
import package.* // import all classs
java.util java.net java.io java.awt java.sql
JVM java virtual Machine
解释自己的指令集(字节码)到 cpu 的指令集或者 os 的系统调用,jvm 只关心 class file。 类文件的组成包括 JVM 指令集,符号表以及一些补助信息。
JRE java runtime environment
jre 目录有 bin and lib, 可以认为 bin 里就是 jvm, lib 市 jvm 需要的一些类库
JKD java development kit
java 开发工具包。 jkd 包含 jre, jre 包含 jvm
2. java 基础
类或者接口用大骆驼命名法(Student, StudentName),方法和变量小骆驼(dogName).
常量全部大写。(STU_NAME)
单行注释 // 多行 /* */ 文档注释(javadoc)
原码:二进制定点表示法
反码:正数反码和源码相同,负数的反码是对齐源码逐位取反,但符号位除外
补码:正数补码与原码相同,负数补码是其反码末尾加1.
计算机操作的时候, 都是用数据对应的补码来计算的。
类型:
基本数据类型:数值(byte,short,int,long,float,double);字符(char);布尔(boolean)
引用数据类型:类(class); 接口(interface); 数组;枚举类型(enum);注解(Annotation)
方法重载:同一个类中允许多个同名方法,只要他们的参数个数或者参数类型不同即可。与返回值类型无关
数组: int[] arr = new int[3]; int[] arr = new int[]{1,2,3} or int[] arr = {1,2,3}
包装类:Byte,Short,Int,Long,Float,Double; 大数类:BigInteger, BigDecimal; 字符类:Character
3。 面向对象
封装:属性和行为封装,对外隐藏细节。隔离变化、便于使用、复用性和安全性。
继承:扩展类功能,复用性和开发效率。使用 extends继承。java 只允许单继承(继承单个类) - 子类可以直接访问父类中的非私有属性和行为 - 子类无法继承父类中私有的内容
多态:重写父类方法表现不同行为。子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表和返回值类型.
java 中方法永远传递值,但是如果是引用类型,传递的就是对象的引用。
super关键字:用于访问父类的成员变量、方法、和构造方法。
- 区分重载(同一个类中同名不同参)
- 重写or 覆盖(override),子类覆盖父类方法 - 无法覆盖父类中的私有方法 - 无法覆盖父类中 static 方法 - 覆盖时,子类方法权限一定要大于等于父类方法权限(更开放权限)
子类构造函数默认会执行父类的构造函数,第一行有一个默认的隐士语句:super(). super() 语句必须要定义在子类构造函数的第一行,父类的初始化动作要先完成。
final: 可以修饰类(不可被继承)、变量(常量,只能被赋值一次)、 方法(不可以被覆盖)。
静态绑定:方法被static/private/final 三个关键字其中之一修饰,执行的静态绑定。
多态:允许一个父类类型的变量引用一个子类类型的对象。父类或接口的引用指向或者接收自己的子类对象。 提高了扩展性,前期定义的代码可以使用后期的内容,但是不能使用后期子类特有的内容
instanceof: 用于判断对象的具体类型,只能用于引用数据类型判断。通常在向下转型前用于健壮性判断。. if (a instanceof Cat)
- 成员变量:编译和运行时都参考等号左边。
- 成员函数:编译看左边, 运行看右边。 动态绑定
- 静态函数: 编译和运行都看左边
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论