![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
文章平均质量分 83
安夜的cookie
草深时见树,林深时见鹿,溪深时见瀑,山深时见雾。
展开
-
为什么java中128强制转换为byte型后是-128?
java中数据是以补码的形式存储的有符号数据最高位为符号位,1表示负数,0表示正数。如byte类型的111在计算机的存储为01101111但是这样就有了一个问题:0的原码有00000000,和10000000两种形式分别表示+0和-0将1000000规定为-128,这样0只有00000000这一种形式。-128在计算机中的存储就为10000000(没有反码和原码表示)所以当int型...原创 2019-03-26 19:39:03 · 2346 阅读 · 2 评论 -
Java增强for循环与可变参数
增强for 1、概述:简化数组和Collection集合的遍历 2、格式 for(元素数据类型 变量 : 数组或者Collection集合) { 使用变量即可,该变量就是元素 }//注意使用新式for循环在遍历集合的途中,如果你往集合中添加,或删除元素时,会报并发修改异常 ArrayList<Integer> list = new ArrayList(...原创 2019-05-07 21:27:10 · 421 阅读 · 0 评论 -
Java泛型
泛型 1、概述 是一种把类型明确的工作,推迟到创建对象,或者调用方法的时候才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。 2、格式 <数据类型> 这里的数据类型只能是引用数据类型 3、泛型好处 (1): 把运行时期的问题提前到了编译期间 (2): 避免了强制类型转换 (3):优化了程序设计,解决了黄色警告线 注意:泛型只在编译期有效 ...原创 2019-05-07 21:25:48 · 88 阅读 · 0 评论 -
去除ArrayList中重复字符串元素
方法1:import java.util.ArrayList;public class Test { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(100); list.add(200); list.a...原创 2019-05-07 21:24:15 · 238 阅读 · 0 评论 -
用LinkedList模拟栈数据结构的集合并测试
用LinkedList模拟栈数据结构的集合并测试模拟栈import java.util.LinkedList;public class MyStack { LinkedList linkedList; public MyStack(){ linkedList = new LinkedList(); } public void addStack(...原创 2019-05-07 21:19:22 · 167 阅读 · 0 评论 -
Java Arrays工具类的asList()方法与集合嵌套
用LinkedList模拟栈数据结构的集合并测试模拟栈import java.util.LinkedList;public class MyStack { LinkedList linkedList; public MyStack(){ linkedList = new LinkedList(); } public void addStack(...原创 2019-05-07 21:00:43 · 215 阅读 · 0 评论 -
Java集合框架之Vector与LinkedList
一、Vector 1、概述 可以实现可增长的对象数组,vector是同步的 2、特有功能 public void addElement(E obj) 将指定的组件添加到此向量的末尾,将其大小增加 1。 public E elementAt(int index) 返回指定索引处的组件,此方法的功能与 get(int) 方法的功能完全相同(后者是 List 接口的一部分)。 V...原创 2019-05-06 20:34:05 · 181 阅读 · 0 评论 -
Java集合框架之ArrayList
集合和数组的区别 长度区别: 数组长度是固定的,集合长度是可变的。 存储数据类型区别: 数组可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型 内容区别: 数组只能存储同种数据类型,集合可以存储不同类型的元素Collection集合ArrayList list = new ArrayList(); 1、添加功能 boolean add(Obje...原创 2019-05-06 12:44:13 · 144 阅读 · 0 评论 -
Java实现各种排序算法与二分查找
冒泡排序 冒泡排序用顺序比较的方法,用第一个和第二个比,小的换到左边,接着第二个和第三个比,小的换到左边,这样一直比到最后一位,一轮过后,便把最大的放到了最右边,第二轮便比第一轮少了一次比较,一共比较(数组的长度-1)轮结束。import java.util.Arrays;public class Test1 { public static void main(String[] ...原创 2019-04-30 11:18:21 · 307 阅读 · 0 评论 -
Java集合之Set
HashSet 特点 元素存储和取出的顺序无序,且元素唯一。HashSet底层数据结构是哈希表,HashSet不是线程安全的,集合元素可以是null。 保证元素唯一性 HashSet底层数据结构是哈希表,HashSet不是线程安全的,集合元素可以是null。...原创 2019-05-15 19:40:05 · 179 阅读 · 0 评论 -
Java集合之Map集合
Map接口和Collection接口的区别 1、Map是双列的,Collection是单列的 2、Map的键唯一,Collection的子体系Set是唯一的 3、Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效Map集合的功能 a:添加功能 V put(K key,V value):添加元素。这个其实还有另一个功能?替换 如果...原创 2019-05-15 20:43:19 · 359 阅读 · 0 评论 -
Java IO流之高效字节流
概述 字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果,java在本身设计的时候也考虑到了这样的设计思想,所以提供了字节缓冲区流BufferedOutputStream写入数据 构造方法 BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 Buf...原创 2019-05-24 17:16:27 · 330 阅读 · 0 评论 -
Java 整数强制转换后的数据错误问题
Java中有各数据类型之间的强制转换语法,格式为: 目标数据类型 变量名=(目标数据类型)(被转换的数据); 这种强制转换可以将范围大的数据类型转换为范围小的数据类型,这样如果数据值的大小在目标数据类型的范围之内还能正常显示,但若是超出了范围,则数值会发生错误。如: 将int型数据137强制转换为byte型数据后,便发生了错误,变成了-119。那么为什么会变成-119呢? 计算...原创 2019-03-26 18:51:06 · 478 阅读 · 0 评论 -
计算机的常用快捷键和常见的dos命令
常用快捷键:ctrl c 复制 ctrl v 粘贴ctrl a 全选Ctrl+X 剪切Ctrl+S 保存Ctrl+Z 撤销Ctrl+N 新建 alt+table 切窗口win+e 打开我的电脑prtsc 截图,并存在剪切板中常见dos命令mspaint 打开画图calc 打开计算器notepad 打开记事本cls 清屏exit 退出D: 切换到D盘...原创 2019-03-25 23:02:55 · 309 阅读 · 0 评论 -
Java多线程的介绍和一些方法
一、进程 进程 要说线程,首先先说进程,线程是依赖于进程存在的。进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。 多进程的意义 单进程计算机只能做一件事情,而我们现在的计算机都可以同时完成多见事情,所以我们常见的操作系统都是多进程操作系统。但对于多核计算机来讲,各个进程并不是同时进程的,因为CPU在某个时间点上只能做一件事情,计...原创 2019-06-09 22:48:38 · 126 阅读 · 0 评论 -
Java注解
概述 注解(Annotation)是从JDK5.0开始引入的技术 作用: 不是程序本身,可以对程序作出解释 可以被其他程序读取(可由此实现动态性) 还有检查和约束的作用 格式: 注解是以“@注释名”在代码中存在的,还可以添加一些参数值内置注解 内置注解是java内部自带的注解,有以下几种 @Override:定义在java.lang.Override中,此注释...原创 2019-06-13 19:44:45 · 81 阅读 · 0 评论 -
Java多线程的另一些方法
礼让线程 概述: 通俗点讲,线程礼让就是让当前正在运行的线程,并执行其他线程。但在执行过程中,礼让有可能会不成功,这是因为这个礼让是要暂停当前正在执行的线程,这个暂停的时间是相当短的,如果在这个线程暂停完毕以后,其他的线程还没有抢占到CPU的执行权,那么这个时候这个线程应该再次和其他线程抢占CPU的执行权。public static void yield(): 暂停当前正在执行的线程对象,并...原创 2019-06-13 13:34:28 · 133 阅读 · 0 评论 -
Java IO流之序列化流与反序列化流(深克隆)
BufferedWriter 写出数据,高效的字符输出流 构造方法 public BufferedWriter(Writer w) 字符缓冲流的特殊功能 public void newLine();: 根据系统来决定换行符 具有系统兼容性的换行符BufferedReader 读取数据 高效的字符输入流 构造方法 public BufferedReader(R...原创 2019-05-28 16:16:34 · 312 阅读 · 0 评论 -
Java IO流之字节流
FileOutputStream 1、构造方法 FileOutputStream(File file) FileOutputStream(String name) 参数为文件路径的字符串或者文件格式都可以FileOutputStream out = new FileOutputStream("a.txt"); out.close(); 创建字节输出流对象了做了几...原创 2019-05-22 22:42:33 · 112 阅读 · 0 评论 -
Java IO流简述
概述 IO流用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作流的对象都在IO包中。分类 1、按数据流向 输入流:读入数据 输出流:读出数据 2、按照数据类型 字节流: 可以读取任何类型的文件 字符流: 只能读取文本文件IO流基类概述 1、字节流的抽象基类: InputStream ,OutputStream...原创 2019-05-22 21:59:06 · 171 阅读 · 0 评论 -
Java IO流之File类
File类概述: 文件和目录路径名的抽象表示形式。这个File类可以用来表示文件,也可以用来表示目录 构造方法: File(String pathname):根据一个路径得到File对象 File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 File(File parent, String child):根据一个父...原创 2019-05-22 19:47:05 · 120 阅读 · 0 评论 -
Java异常
一、异常的概述: 异常就是Java程序在运行过程中出现的错误。分类: 异常的基类: Throwable 严重问题: Error 不予处理,因为这种问题一般是很严重的问题,比如: 内存溢出 非严重问题: Exception 编译时异常: 非RuntimeException 运行时异常: RuntimeExceptionJVM默认是如何处理异常的 main函数收...原创 2019-05-22 18:56:56 · 104 阅读 · 0 评论 -
Java IO流之字符流与高效字符流
字符流=字节流+编码表String类中的编码和解码问题 编码: 就是把字符串转换成字节数组 public byte[] getBytes();使用平台的默认字符集将此 String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 public byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte...原创 2019-05-24 17:39:24 · 297 阅读 · 0 评论 -
Java常用类之StringBuffer
概述 如果要对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间,而StringBuffer可以解决这个问题,是线程安全的可变字符序列构造方法 public StringBuffer(); public StringBuffer(int capacity): 指定容量的字符串缓冲区对象 public StringBuffer(String str)...原创 2019-04-30 09:39:19 · 161 阅读 · 0 评论 -
Java日期工具类
Date类 1、概述 类Date表示特定的瞬间,精确到毫秒 2、构造方法 public Date() public Date(long date) //把一个long类型的毫秒值转换成一个日期对象 3、成员方法 public long getTime(): 获取一个日期对象对象毫秒值 public void setTime(long time): 给一个日期...原创 2019-05-05 17:49:27 · 110 阅读 · 0 评论 -
Java常用类之Math类Random类和System类
Math类 1、概述 Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 2、成员变量 public static final double E : 自然底数 public static final double PI: 圆周率 3、成员方法 public static int abs(int a) 取绝对值 public s...原创 2019-05-04 20:57:20 · 1127 阅读 · 1 评论 -
Java中的数组
数组概述和定义格式数组的概念 数组是存储同一种数据类型多个元素的集合。 数组即可以存储基本数据类型,也可以存储引用数据类型。数组的定义格式 格式1: 数据类型 [] 数组名; 格式2:数据类型 数组名[];例:int[] a; //定义了一个int型的数组aint a[]; //定义了一个int型的a数组数组的初始化和动态初始化数组的初始化 为数...原创 2019-04-09 12:59:46 · 120 阅读 · 0 评论 -
Java中数据类型的概述和分类及各数据类型之间的转换
java数据类型分为基本数据类型和引用数据类型基本数据类型 分为:(1): 数值型整数型 字节数 范围byte 1(8bit) -128 ~ 127short 2(16bit) -2^15 ~ 2^15 - 1int 4(32bit) -2^31 ~ 2^31 - 1long 8(64bit) -2^63 ~ 2^63 - 1浮点数f...原创 2019-03-26 21:37:00 · 132 阅读 · 0 评论 -
JDK,JRE,JVM各自的作用与相互之间的联系
***JDK:***全称java development kit,java开发工具包,提供给和开发人员进行编写java程序。JDK的安装目录:bin:JDK的一些工具命令,最主要的是编译器(javac.exe)db:数据库include:java和JVM交互用的头文件lib:类库jvm:java的运行环境***JRE:***全称java runtime environment,jav...原创 2019-03-26 16:58:18 · 284 阅读 · 0 评论 -
Java JDK安装与环境变量配置
Java JDK安装与环境变量配置1、安装JDK首先,在官网下载JDK官网下载地址双击开始安装,点击下一步。此时选择安装路径,可以更改也可以选择默认的安装路径,点击下一步,将直接开始安装。这一步为安装jre,由于上一步已安装,所以此步可忽略。最终显示成功安装。2、环境变量配置演示的为win10的环境配置,其他windows版本操作类似,稍作变通即可。右键计算机,点击属性...原创 2019-03-25 13:31:32 · 200 阅读 · 0 评论 -
Java方法概述和格式说明
1、什么是方法 方法就是完成特定功能的代码块2、方法的格式条件修饰符 状态修饰符 方法名(参数类型 参数名1,参数类型 参数名2 ...){ 方法体; return 返回值;}3、方法的格式详细说明 (1)修饰符:常用的有public、static等 (2)返回值类型:用于限定返回值的数据类型 (3)方法名:自己设定的一个名称,方便我们调用方法 (4)参数类型...原创 2019-04-02 17:38:20 · 344 阅读 · 0 评论 -
Java的控制跳转语句
控制跳转语句,是在程序进行到某一步时,想要结束或者中断这个循环,用程序跳转语句来实现这个功能。1、break语句 应用场景: (1)在选择结构switch语句中 (2)在循环语句中 作用: (1)退出单层循环 (2)结束switch语句2、continue语句 应用场景: 在循环语句中 作用: 跳出一次循环,执行下一步操作例:for(...原创 2019-04-02 16:52:16 · 1602 阅读 · 0 评论 -
Java的循环语句
for循环 格式: for(初始化表达式语句;判断条件语句;控制条件语句) { 循环体语句; } 执行流程: a:执行初始化表达式语句 b:执行判断条件语句,看其返回值是true还是false 如果是true,就继续执行 如果是false,就结束循环 c:执行循环体语句; d:执行控制条件语句 e:回到b继续。例:求出1-1...原创 2019-04-02 12:59:01 · 142 阅读 · 0 评论 -
Java的if语句和switch语句
if语句格式1: if(比较表达式或者是boolean类型的值) { 语句体; } 执行流程: 先计算比较表达式的值,看其返回值是true还是false。 如果是true,就执行语句体; 如果是false,就不执行语句体; 注意事项: a:比较表达式无论简单还是复杂,结果必须是boolean类型 b:if语句控制的语句体如果是一条语句,大...原创 2019-04-02 12:35:32 · 272 阅读 · 0 评论 -
java键盘录入的基本格式
java的键盘录入有多种方法,这里讲平常用得最多也是最好用的一种。1、首先是导包 格式: import java.util.Scanner; 位置:在class上面2、创建键盘录入对象 格式: Scanner sc = new Scanner(System.in); 其中sc为自己起名的变量。3、通过对象获取数据 格式: int a = sc.next...原创 2019-04-02 12:06:08 · 386 阅读 · 0 评论 -
JAVA中的一些运算符的基本用法
一、逻辑运算符逻辑运算符一般用于连接boolean类型的表达式或者值1、&(并且)例:在表示一个数大于3小于5时:x>3&x<52、|(或者)例:表示一个数大于3或者小于3时:x>3|x<33、!(非)例:表示一个数不等于零时:x!=04、^(异或)相同为false,不同为true5、&&(短路与)&&am...原创 2019-03-27 18:42:46 · 279 阅读 · 0 评论 -
Java面向对象之static关键字的使用
首先介绍一个static关键字的例子 先建一个Person类 用static修饰”国家“public class Person { public String name; public static String country;} 然后测试一下这个类public class MyTest { public static void m...原创 2019-04-10 13:44:55 · 175 阅读 · 0 评论 -
Java面向对象
面向对象的思想概述 编写程序当需求单一,或者简单时,我们可以高效率短时间内一步一步去操作。 可是随着需求的更改,功能的增多,发现需要面对的每一个步骤很麻烦了,这个时候开始思索,能不能将这些步骤和功能进行封装,功能类似的封装在一起。 这样结构就清晰了很多。用的时候找到对应的类就可以了。这就是面向对象的思想。面向对象的思想特点: a:是一种更符合我们思想习惯的思想 b:可以将复杂...原创 2019-04-09 17:47:34 · 69 阅读 · 0 评论 -
Java局部变量和成员变量的区别
1、在类中的位置不同成员变量:在类中方法外局部变量:在方法定义中或放大声明上2、在内存中的位置不同成员变量:在堆内存中局部变量:在栈内存中3、生命周期不同成员变量:随着对象的创建而出现,随着对象的消失而消失局部变量:随着方法的调用而出现,随着方法的调用完毕而消失4、初始化值不同成员变量:有默认的初始化值局部变量:没有默认的初始化值,必须定义赋值后才能使用 注意如果局部变量...原创 2019-04-09 18:06:50 · 98 阅读 · 0 评论 -
Java形参、匿名对象、private关键字、this关键字相关问题
1、java中参数传递问题 形式参数 基本类型:形式参数的改变不影响实际参数 引用类型:像是参数的改变直接影响实际参数 方法的参数是类名 如果一个方法的形式参数是一个类类型(引用类型),这里其实需要需要(引用的目的)的是该类的对象。2、匿名对象的概述和应用 匿名对象:没有名字的对象 应用场景 a、调用方法,仅仅只调用一次的时候 b、匿名对象可以作为实际参数...原创 2019-04-09 21:53:07 · 159 阅读 · 0 评论