Java进阶-集合(1)
进入Java集合的学习,集合的数学概念是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。在Java中的集合也是类似的,先学习集合的框架,这次主要介绍一下Conllection接口。
一、概述1、数组存储数组存储具有两大缺点:1)初始化后长度不可变,难以保存数量变化的数据。2)只能按索引顺序存取,无法保存具有映射关系的数据。如成绩表为语文——79,数学——80,这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。
2、集合2.1 目的为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组)
2.2 作用集合类主要负责保存、盛装其他数据,因此也被称为容器类。Java 所有的集合类都位于 java.util 包下,提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。
2.3 特点1)接口和实现类相分离。2)支持泛型,可以限制在一个集合中只能放入同一种数据类型的元素,如
List list = new ArrayList<>(); // 只能放入String类型。关于 ...
Java核心-异常处理
上一次学完了Java的核心类与API,这次来学习异常处理。我们都知道,Java语言具有健壮性和安全性,而异常处理机制就是其重要保证。如下
一、类型错误(Error)和异常(Exception)。这里只讨论 Exception 类型的异常处理。
1、错误(Error)Error 的异常通常是灾难性的致命错误,不是程序可以控制的。正常情况下不大可能出现,绝大部分的 Error 都会导致程序处于非正常、不可恢复状态。所以不需要被开发者捕获。常见错误类型如下
NoClassDefFoundError (找不到 class 定义异常)StackOverflowError (深递归导致栈被耗尽而抛出的异常)OutOfMemoryError (内存溢出异常)
2、异常(Exception)Exception 是程序正常运行过程中可以预料到的意外情况,并且应该被开发者捕获并进行异常处理。异常又可分为运行时异常和非运行时异常。常见异常类型如下1)运行时异常
NullPropagation (空指针异常)ClassCastException (类型强制转换异常)IllegalArgumentExce ...
Java核心-核心类与API(4)
话接上回,继续核心类与API的学习,最后介绍一下Object类以及与数学、日期/时间有关的类,就结束该部分的学习了,其他的根据需要自行了解。
一、Object类1、概述Object 是 Java 类库中的一个特殊类,也是所有类的父类,任何 Java 对象都可以调用 Object 类的方法。Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。(向上和向下转型问题,在讲面向对象的继承特性那里讲过,不熟悉的可回去了解)
注:所有的对象都可以向 Object 进行转换,包含数组和接口类型,即一切的引用数据类型都可以使用 Object 进行接收。
2、Object类常用方法2.1 toString()方法(常用)返回该对象的字符串,当程序输出一个对象或把某个对象和字符串进行连接运算时,系统会自动调用该对象的 toString() 方法返回该对象的字符串表示。案例如下
1234567891011121314151617181920212223242526//加上toString()变灰系统提示不必 ...
Java核心-核心类与API(3)
话接上回,继续核心类与API的学习,这次介绍一下枚举类以及与系统、交互有关的类,需要了解并能使用即可。
一、枚举类1、概述枚举也称穷举,简单理解就是把所有可能一一列举出来(穷尽所有可能)。枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。使用 enum 关键字来定义枚举类,各个常量使用逗号( , ) 分割。如一年的 4 个季节、12 个月份,一个星期的 7 天。
2、声明必须使用 enum 关键字声明枚举,并定义枚举的名称、可访问性、基础类型和成员等。
注:如果没有显式地声明基础类型的枚举,则基础类型是 int。
3、案例12345678910111213141516171819202122232425//定义一个表示颜色的枚举类型 Colorpublic enum Color { RED,BLUE,GREEN,BLACK; //可通过枚举类型名直接引用常量,如 Color.RED}//使用枚举使switch语句的可读性更强enum Signal { // 定义一个枚举类型 GREEN,YELLOW,RED}p ...
Java核心-核心类与API(2)
话接上回,继续核心类与API的学习,这次介绍StringBuffer/StringBuilder/StringJoiner类。StringBuffer和StringBuilder是我们学习的重点,建议对比学习,做好区分。
一、StringBuffer类1、概述1)问题由于 String 类是final 类型的,所以使用 String 定义的字符串是一个常量,一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,只能创建新的字符串。2)解决使用 StringBuffer 类(也称字符串缓冲区)来操作字符串。
==StringBuffer 类和 String 类最大的区别在于它的内容和长度都是可以改变的==。StringBuffer 类似一个字符容器,当在其中添加或删除字符时,所操作的都是这个字符容器,因此并不会产生新的 StringBuffer 对象。
2、创建StringBuffer类对象2.1 三种方式1)StringBuffer() 构造一个空的字符串缓冲区,并初始化为 16 个字符的容量。2)String ...
Java核心-核心类与API(1)
学完Java的面向对象特性后,接下来学习Java核心类与API。Java的API可理解为Java自己提供的标准类库,开发人员可直接使用其方法。常用的有String类,StringBuffer/StringBuilder类,object类,枚举类,以及其他一些如与系统、交互、数学、日期相关的类,如下。这次先来介绍String类。
一、String类1、概述String 类来创建和操作字符串。在讲数据类型的时候说过类属于引用类型,而String类是最常用的引用类型。
2、几个要点
String 是最终类、不可变类,即字符串对象一旦被创建,其值是不能改变的,但可以使用其他变量重新赋值的方式进行更改。
String对象一旦被创建就固定不变了,对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。
3、字符串常量池3.1 概述1)目的实际开发中,String类是使用频率非常高的一种引用对象类型。但由于不断地创建新的字符串对象会极大地消耗内存。因此,JVM为了提升性能和减少内存开销,内置了一块特殊的内存空间即常量池,以此来避免字符串的重复创建。2)操 ...
LAMP项目部署(下)
上一次介绍了与项目部署有关的YUM和阿里云服务器的购买配置,这次重点来介绍LAMP项目部署,包括LAMP环境部署和Discuz!论坛部署,最后简单聊聊域名与解析,内容如下。
一、LAMP环境部署1、回顾LAMPLAMP = Linux + Apache + MySQL + PHP
Apache:主要用于接收用户的请求,处理业务逻辑,返回结果给客户端(浏览器)
PHP:编程语言的一种,主要应用于Web开发。主要实现注册、登录、加入购物车、下单、支付等功能
MySQL:数据库,删库到跑路,这里的”库”就是指数据库。永久保存数据
2、LAMP部署前期准备2.1 关闭防火墙12systemctl stop firewalldsystemctl disable firewalld
2.2 关闭SELinuxSELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。
获取SELinux的状态:
1getenforce
临时关闭SElinux:重启后SELinux还会自动启动
1sete ...
进程优先级与LAMP项目部署(上)
上一篇介绍了Linux的进程检测与控制,这次再将剩余一点内容即进程的优先级说完,同时再对LAMP项目部署做个简单开头,如介绍一下与项目部署有关的YUM和阿里云服务器的购买配置。
一、进程的优先级(扩展)1、什么是进程的优先级Linux是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。哪些进程先运行,哪些进程后运行,就由进程优先级来控制。
问题1:什么时候需要用到进程的优先级呢?
答:当CPU负载过高时,如CPU的使用率>=90%以上。这个时候进程的优先级就会起作用。
2、查看进程的优先级PR 优先级,数值越小优先级越高。NI 优先级,数值越小优先级越高,可以人为更改。(NI = NICE = Nice)
NI值有一个范围 -20 ~ 19
问题2:这两个数值是在哪里看到的?
答:top命令
3、调整进程的优先级3.1 使用top调整进程的优先级第一步:使用top命令获取你要调整的进程信息(PID编号)
1top -bn 1
假如要调整 atd(at命令的底层服务)这个进程的优先级,可以看到其PID编号为7021第二步:运行 ...
Linux进程检测与控制
进程是一个非常重要的概念,我们都知道,操作系统合理地组织、调度计算机的工作与资源。而在引入线程前,进程是操作系统进行资源分配和调度的基本单位。所以,探究Linux进程以及与进程有关的检测与控制是非常有意义的。这次内容如下。
一、Linux进程与程序1、进程与程序的关系
进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。
简单来说,程序是人使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合。进程是正在执行中的程序。
eg:谷歌浏览器是一个程序,当我们打开谷歌浏览器,就会在系统中看到一个浏览器的进程,当程序被执行时,程序的代码都会被加载入内存,操作系统给这个进程分配一个 ID,称为 PID(进程 ID/进程控制符),用于唯一标识一个进程。我们打开多个谷歌浏览器,就有多个浏览器子进程,但是这些进程使用的程序,都是chrome。
PID = Process ID = 进程编号
按 win+X选择任务管理器并打开,如下,是我们的windows操作系 ...
Linux自有服务—防火墙和计划任务
Linux常用自有服务有NTP时间同步服务、firewalld防火墙服务和crond计划任务服务,NTP在上一篇中讲过,这次主要来说一下防火墙firewalld与计划任务的相关内容。如下。
一、Linux中防火墙firewalld1、什么是防火墙防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。
京东搜索企业级硬件防火墙:
Windows防火墙:搜索控制面板并打开,点击系统与安全=>Windows Defender 防火墙Windows防火墙的划分与开启、关闭操作:
2、防火墙的作用
防火墙选择让正常请求通过,从而保证网络安全性。
3、Linux中的防火墙分类传统Linux防火墙
CentOS5、CentOS6 => 防火墙 => iptables防火墙
CentOS7 => 防火墙 => firewalld防火墙
firewalld = fire火 wall墙 daemon守护进程
4、firewalld防火墙4.1 区域firewalld增加了区域(zone)的概念,所谓区域 ...
公告
欢迎来访我的个人小站
当前访问用户
欢迎来自 未知区域 的小伙伴
访问IP为: 未知IP
浏览器版本:未知浏览器
访问IP为: 未知IP
浏览器版本:未知浏览器
标签
网站资讯
文章数目 :
129
已运行时间 :
734 天
本站总字数 :
269.1k
本站访客数 :
2062
本站总访问量 :
2930
最后更新时间 :
1 个月前