课外开发
未读后端部分1. 熟悉后台开发工具,搭建开发环境 idea mysql 2. 学习网络基础知识,了解网络请求整个过程 引用https://blog.csdn.net/qq_40959677/article/details/94873075 所以其流程大致如下: DNS 解析域名得到 IP 地址 客户端与服务器建立连接(TCP 三次握手) 客户端发起请求 服务器接收到请求根据端口号.路径等找到对应资源文件,响应源代码给客户端 客户端拿到请求到的数据(html 页面的源代码),开始解析页面以及请求资源 客户端渲染页面 web 服务器断开连接(四次挥手) a. url 的组成URI:统一资源标识符 URL:统一资源定位符 URN:统一资源名称 url 由请求协议(如 http、https、ftp、tcp 等协议)+域名+端口号+虚拟目录部分+文件名+问号传参+哈希定位 b. DNS 解析过程1、在浏览器中输入 www . qq .com 域名,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个 IP 地址映射,完成域名解析。2、如果 hosts ...
大学生涯
未读形参&实参方法的定义可能会用到 参数(有参的方法),参数在程序语言中分为: 实参(实际参数,Arguments):用于传递给函数/方法的参数,必须有确定的值。 形参(形式参数,Parameters):用于定义函数/方法,接收实参,不需要有确定的值。 1234567String hello = "Hello!";// hello 为实参sayHello(hello);// str 为形参void sayHello(String str) { System.out.println(str);} 值传递&引用传递程序设计语言将实参传递给方法(或函数)的方式分为两种: 值传递:方法接收的是实参值的拷贝,会创建副本。 引用传递:方法接收的直接是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。 很多程序设计语言(比如 C++、 Pascal )提供了两种参数传递的方式,不过,在 Java 中只有值传递。 为什么 Java 只有值传递?为什么说 Java 只有值传递呢? 不需要太多废话, ...
大学生涯
未读异常Java 异常类层次结构图概览: Exception 和 Error 有什么区别?在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。Throwable 类有两个重要的子类: Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获。Exception 又可以分为 Checked Exception (受检查异常,必须处理) 和 Unchecked Exception (不受检查异常,可以不处理)。 Error:Error 属于程序无法处理的错误 ,我们没办法通过 catch 来进行捕获不建议通过catch捕获 。例如 Java 虚拟机运行错误(Virtual MachineError)、虚拟机内存不够错误(OutOfMemoryError)、类定义错误(NoClassDefFoundError)等 。这些异常发生时,Java 虚拟机(JVM)一般会选择线程终止。 Checked Exception 和 Unchecked Exception 有什么区别?Checked Exception 即 受检查异常 ...
大学生涯
未读泛型什么是泛型?有什么作用?Java 泛型(Generics) 是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。 编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如 ArrayList<Person> persons = new ArrayList<Person>() 这行代码就指明了该 ArrayList 对象只能传入 Person 对象,如果传入其他类型的对象就会报错。 1ArrayList<E> extends AbstractList<E> 并且,原生 List 返回类型是 Object ,需要手动转换类型才能使用,使用泛型后编译器自动转换。 泛型的使用方式有哪几种?泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。 1.泛型类: 1234567891011121314//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型//在实例化泛型类时,必须指定T的具体类型public class Generic<T>{ pr ...
大学生涯
未读ObjectObject 类的常见方法有哪些?Object 类是一个特殊的类,是所有类的父类,主要提供了以下 11 个方法: 1234567891011121314151617181920212223242526272829303132333435363738394041424344/** * native 方法,用于返回当前运行时对象的 Class 对象,使用了 final 关键字修饰,故不允许子类重写。 */public final native Class<?> getClass()/** * native 方法,用于返回对象的哈希码,主要使用在哈希表中,比如 JDK 中的HashMap。 */public native int hashCode()/** * 用于比较 2 个对象的内存地址是否相等,String 类对该方法进行了重写以用于比较字符串的值是否相等。 */public boolean equals(Object obj)/** * native 方法,用于创建并返回当前对象的一份拷贝。 */protected native Object clone() ...
大学生涯
未读StringString、StringBuffer、StringBuilder 的区别?可变性 String 是不可变的(后面会详细分析原因)。 StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串,不过没有使用 final 和 private 关键字修饰,最关键的是这个 AbstractStringBuilder 类还提供了很多修改字符串的方法比如 append 方法。 12345678910111213abstract class AbstractStringBuilder implements Appendable, CharSequence { char[] value; public AbstractStringBuilder append(String str) { if (str == null) return appendNull(); int len ...
大学生涯
未读面向对象基础面向对象和面向过程的区别面向过程编程(Procedural-Oriented Programming,POP)和面向对象编程(Object-Oriented Programming,OOP)是两种常见的编程范式,两者的主要区别在于解决问题的方式不同: 面向过程编程(POP):面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。 面向对象编程(OOP):面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。 相比较于 POP,OOP 开发的程序一般具有下面这些优点: 易维护:由于良好的结构和封装性,OOP 程序通常更容易维护。 易复用:通过继承和多态,OOP 设计使得代码更具复用性,方便扩展功能。 易扩展:模块化设计使得系统扩展变得更加容易和灵活。 POP 的编程方式通常更为简单和直接,适合处理一些较简单的任务。 POP 和 OOP 的性能差异主要取决于它们的运行机制,而不仅仅是编程范式本身。因此,简单地比较两者的性能是一个常见的误区。 在选择编程范式时,性能并不是唯一的考虑因素。代码的可维护性、可扩展性和开发效率同样重要。 现代编程语言基本都 ...
大学生涯
未读基本数据类型Java 的基本数据类型Java 中有 8 种基本数据类型,分别为: 6 种数字类型: 4 种整数型:byte、short、int、long 2 种浮点型:float、double 1 种字符类型:char 1 种布尔型:boolean。 这 8 种基本数据类型的默认值以及所占空间的大小如下: 基本类型 位数 字节 默认值 取值范围 byte 8 1 0 -128 ~ 127 short 16 2 0 -32768(-2^15) ~ 32767(2^15 - 1) int 32 4 0 -2147483648 ~ 2147483647 long 64 8 0L -9223372036854775808(-2^63) ~ 9223372036854775807(2^63 -1) char 16 2 ‘u0000’ 0 ~ 65535(2^16 - 1) float 32 4 0f 1.4E-45 ~ 3.4028235E38 double 64 8 0d 4.9E-324 ~ 1.7976931348623157E308 boo ...
大学生涯
未读基本语法1. 注释Java 中的注释有三种: 单行注释:通常用于解释方法内某单行代码的作用。 多行注释:通常用于解释一段代码的作用。 文档注释:通常用于生成 Java 开发文档。 用的比较多的还是单行注释和文档注释,多行注释在实际开发中使用的相对较少。 123456789// 这是单行注释/* * 这是多行注释 *//** * 这是文档注释 */ 在我们编写代码的时候,如果代码量比较少,我们自己或者团队其他成员还可以很轻易地看懂代码,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会执行(编译器在编译代码之前会把代码中的所有注释抹掉,字节码中不保留注释),是我们程序员写给自己看的,注释是你的代码说明书,能够帮助看代码的人快速地理清代码之间的逻辑关系。因此,在写程序的时候随手加上注释是一个非常好的习惯。 .class文件中没有注释 代码的注释不是越详细越好。实际上好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。 若编程语言足够有表达力,就不需要注释,尽量通过代码来阐述。 举个例子: 去掉下面复杂的注释,只需要创建一个与注释所言同一事物的函数 ...
大学生涯
未读基础概念1. Java语言的特点 简单易学(语法简单,上手容易); 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 可靠性(具备异常处理和自动内存管理机制); 安全性(Java 语言本身的设计就提供了多重安全防护机制如访问权限修饰符、限制程序直接访问操作系统资源); 高效性(通过 Just In Time 编译器等技术的优化,Java 语言的运行效率还是非常不错的); 支持网络编程并且很方便; 编译与解释并存; 2. Java SE vs Java EE Java SE(Java Platform,Standard Edition): Java 平台标准版,Java 编程语言的基础,它包含了支持 Java 应用程序开发和运行的核心类库以及虚拟机等核心组件。Java SE 可以用于构建桌面应用程序或简单的服务器应用程序。 Java EE(Java Platform, Enterprise Edition ):J ...