![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
echo_wjcwjc
只会c和java
展开
-
数据类型以及数据类型的转换
一、基本数据类型:byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767,默认值0int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0long:长整型,在内存中占64位,即8个字节...转载 2018-11-10 13:51:15 · 342 阅读 · 0 评论 -
类与类,类与接口,接口与接口,抽象类与接口
类与类 继承关系,只能单继承但能够多层继承类与接口 实现关系,可以单实现,也可以多实现并且还可以在继承一个类的同时实现多个接口接口与接口 继承关系,可以单继承也可以多继承抽象类与接口 抽象类可以实现接口,但...原创 2018-11-27 20:50:23 · 74 阅读 · 0 评论 -
java中四个权限修饰符的作用域
private:类内访问默认:包内访问protected:包外子类访问public:包外访问转载 2018-11-27 20:55:50 · 1858 阅读 · 0 评论 -
集合中的并发修改异常
问题 我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;/*(运行时了Concu...转载 2018-11-30 19:39:17 · 373 阅读 · 0 评论 -
List的3个子类的特点
ArrayList特点: 底层数据结构是数组,增删慢,查询快 线程不安全,效率高Vector特点: 底层数据结构是数组,增删慢,查询快 线程安全,效率低LinkedList: 底层数据结构是双重链接列表,增删快,查询慢 线程不安全,效率高...原创 2018-12-03 09:16:01 · 164 阅读 · 0 评论 -
集合和数组的区别
A:长度区别 数组长度固定 集合长度可变B:内容区别 数组可以是基本类型,也可以是引用类型 集合只能是引用类型C:元素内容 数组只能存储同一种类型 集合可以存储不同类型(其实集合一般存储的也是同一种类型)...转载 2018-12-03 09:18:53 · 138 阅读 · 0 评论 -
详解Object类的equals方法
在我的理解中其实Object类的equals方法比较的是栈值(地址值)和"=="效果一样而重写的equals方法比较的是堆值(值)。下面是我转载的内容,上面是我的见解url:https://blog.csdn.net/beautiful_face/article/details/55210412值类型与引用类型众所周知,Java的数据类型分为两类,8种基本的数据类型(byte、sho...转载 2018-12-03 19:24:25 · 284 阅读 · 0 评论 -
关于集合去除重复的引用类型的对象的问题
题目讲解: 我们现在要将一个集合内添加的学生类对象中,将具有相同成员变量中的对象去掉。如:Student s1 = new Student(10, "1");Student s2 = new Student(10, "1");s1与s1具有相同的成员变量值在集合中就应该保留其中一个对象。学生类代码package test;public class Student...原创 2018-12-03 19:50:42 · 258 阅读 · 0 评论 -
java中异常注意事项
A:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。package cn.itcast_01;import java.sql.SQLException;public class Demo { public static void main(String[] args) { }}class Fu{ public void show() throws E...原创 2018-12-27 10:36:56 · 182 阅读 · 0 评论 -
Map集合大总结
若想了解底层请参考底层剖析的网址一、Map Map集合的特点: 将键映射到值的对象,一个映射不能包含重复的键,每个键只能映射一个值 Map集合的数据结构针对键有效,跟值无关 Collection集合的数据结构针对元素有效 Map和Collection的区别 Map存储的是键值对形式的元素,键唯一,只可以重复 ...原创 2018-12-22 13:04:58 · 126 阅读 · 0 评论 -
HashSet(底层)如何保证其唯一性
案例:package set;import java.util.HashSet;public class HashSetDemo { public static void main(String[] args) { // 创建集合对象 HashSet<String> hs = new HashSet<String>(); // 创建并添加元素...原创 2018-12-22 13:58:28 · 444 阅读 · 0 评论 -
Set总结
Set(保证唯一) 无序,唯一(不可重复) HashSet的底层实现 public HashSet() { map = new HashMap<E,Object>(); } public V put(K key, V value) { //判断对象是否为Null if (key == n...原创 2018-12-22 14:22:05 · 145 阅读 · 0 评论 -
java中的异常总结
异常体系 程序的异常:Throwable(jvm会在出错的地方停止,不会继续执行) 严重的问题:Error 我们不处理,这回总该问题一般是很严重的,比如内存溢出 问题:Exception 编译期问题:不是RuntimeException的异常,必须进行处理,因为你不处理,编译不通过 运行期问题:RuntimeException以及子异...原创 2019-01-03 16:21:45 · 92 阅读 · 0 评论 -
java中File的总结
File构造方法File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 File(String parent, String child)...原创 2019-01-03 16:32:04 · 148 阅读 · 1 评论 -
java中字节流总结
IO概述 IO流用来处理设备之间的数据传输,上传文件和下载文件 按照数据流向 输入流 读入数据 输出流 写出数据 按照数据类型 字节流 字符流什么情况下使用哪种流呢? 如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。 如...原创 2019-01-03 18:44:20 · 285 阅读 · 0 评论 -
java中字符流总结
字符流出现的原因和形式由于字节流操作中文时,会将一个中文根据不同的编码表转化为不同的字节来读 而字符流遇到中文时会根据一个一个中文来读(以中文为单位) 编码表: Unicode:国际标准码,融合了多种文字。 所有文字都用两个字节来表示,Java语言使用的就是unicode UTF-8:最多用三个字节来表示一个字...原创 2019-01-03 19:21:33 · 157 阅读 · 0 评论 -
final和抽象类的介绍
final final 修饰类,类不能被继承 final 修饰方法,方法不能被重写。 final 修饰变量,变量不能被重新赋值。变量变成常量抽象类 概念: A:抽象类和抽象方法必须用abstract关键字修饰 ...原创 2018-11-27 20:46:14 · 675 阅读 · 0 评论 -
迭代器为啥不定义一个类而不是一个接口
因为不同集合的数据结构和存储方式不同,所以遍历也不同。假迭代器定义为一个类,首先若是具体类那么就会提供一个公共的实现不同集合遍历的方法,我们知道这是不可能的。若是一个抽象类又因为java中类是单继承的所以无法同时继承多个类所以不行而且集合的根接口无法继承抽象类。其实迭代器的具体实现方法是在集合的具体子类中以内部类的方式实现。具体子类中以内部类的方式实现的源码public in...原创 2018-11-30 16:51:25 · 317 阅读 · 0 评论 -
HashSet底层如何实现内容唯一
HashSet集合的add()方法的源码interface Collection { ...}interface Set extends Collection { ...}class HashSet implements Set { private static final Object PRESENT = new Object(); private transient ...转载 2018-12-04 21:07:11 · 466 阅读 · 0 评论 -
java的常见命名规范
包 全部小写 单级包:小写 举例:demo 多级包:小写,并用.隔开 举例:cn.itcast.dao类或者接口 一个单词:首字母大写 举例:Student 多个单词:每个单词首字母大写 ...原创 2018-11-10 13:57:58 · 89 阅读 · 0 评论 -
JDK,JRE,JVM联系及区别
JVM--保证了java语言的跨平台性 就像我们出国旅游如果不会说当地的语言就会带一个翻译官。jvm的作用就像翻译官一样可以在不同的操作系统上运行。 因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。JRE--Java程序的运行环境 JRE是由JVM和java程序...原创 2018-11-08 10:03:34 · 73 阅读 · 0 评论 -
java中path环境变量和classpath环境变量的作用以及配置
path环境变量 原因:在jdk的bin目录下有编译工具(javac.exe)和运行工具(java.exe),如果不配置path环境变量只有在bin目录下才能编译运行java程序。 作用:通过配置path环境变量,将javac指令所在目录也就是JDK安装目录下的bin目录配置到path变量下,即可使javac指令在任意目录下运行。 配置: 讲计算机或者我的电脑右击-...原创 2018-11-08 10:25:56 · 3795 阅读 · 0 评论 -
对象在内存中是如何存放的
关于栈、堆、方法区分别存放哪些元素具体请参考:https://blog.csdn.net/qq_35654259/article/details/84197879 案例如下:/* 手机类的测试*/class Phone { //品牌 String brand; //价格 int price; //颜色 String color; //打电话的方法 publi...转载 2018-11-18 19:45:05 · 642 阅读 · 0 评论 -
Java中 s = s+1 与 s +=1 的区别
问题:public class Operator { public static void main(String[] args) { opreator1(); opreator2(); } private static void opreator1() { short s = 1; s = s+1;//会报错 System.out.println(s); }...原创 2018-11-14 19:40:00 · 1060 阅读 · 0 评论 -
成员变量与局部变量的区别和静态变量与成员变量的区别
成员变量与局部变量的区别 A:在类中的位置不同:(概念) 成员变量:在类中方法外 局部变量:在方法定义中(形参)或者方法声明上 B:在内存中的位置不同(空间) ...原创 2018-11-23 16:32:45 · 156 阅读 · 0 评论 -
java程序中创建一个对象做了那些事情
Class HelloWorld{ private int a = 10; public HelloWorld(){ a = 5; } public static void main(String[] args){ HelloWorld hw = new HelloWorld(); }}原创 2018-11-23 17:00:31 · 396 阅读 · 0 评论 -
局部代码块 构造代码块 静态代码块 成员变量 静态变量执行顺序
局部代码块 局部位置在方法内部,用于限定变量的生命周期,及早释放变量,提高内存利用率。 {}构造代码块 在类中的成员位置(就是成员变量和成员方法可以在的位置)。在构造方法执行之前执行。 每一次调构造方法执行前都会自动先执行构造代码块。 {}静态代码块 ...原创 2018-11-23 20:10:49 · 1236 阅读 · 0 评论 -
逻辑运算符中"&"与"&&"和"|"与"||"的区别
“&”和“&&”的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算;class OperatorDemo { public static void main(String[] args) { int x = 3; int y = 4; /* ...原创 2018-11-17 12:48:52 · 429 阅读 · 0 评论 -
位运算符的"~"和">>"以及">>>"
位运算符 运算符 运算 范例 << 左移 3 << 2 = 12 --> 3*2*2=12 >> 右移 3 >> 1 = 1 --> 3/...转载 2018-11-17 13:03:45 · 1228 阅读 · 0 评论 -
sc.next() 和 sc.nextLine 的区别
*两个都是用来接收用户的输入,区别在于: next()从遇到第一个有效字符(非空格、换行符)开始扫描,遇到第一个分隔符或结束符(空格’ ‘或者换行符 ‘\n’)时结束。 nextLine()则是扫描剩下的所有字符串知道遇到回车为止。**聪明的你get到了吗? 如果没有,没关系,我们来举个例子,对于如下输入:Scanner sc = new Scanner(System.in);//...转载 2018-11-17 13:47:28 · 1404 阅读 · 3 评论 -
方法重载
方法重载概述 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可 方法重载条件有两个以上的同名方法(方法名相同) 参数类型,参数个数,参数类型的顺序不同(参数列表不同) 方法重载注意 与方法的返回值无关 案例如下public class MehodDemo { /** * @param arg...原创 2018-11-18 16:16:31 · 63 阅读 · 0 评论 -
数组初始化的两种方式
一:动态初始化 初始化时只指定数组长度,由系统为数组分配初始值。 二:静态初始化 初始化时指定每个数组元素的初始值,由系统决定数组长度 案例如下public class ArrayDemo{ /** * @param args */ public static void main(String[] args) { // TODO A...原创 2018-11-18 16:24:19 · 1710 阅读 · 0 评论 -
java 堆 栈 方法区 数据存放 操作流程
栈: 1 基础数据类型 byte short int long float double char boolean 2 方法的形式参数,方法调用完后从栈空间回收 3 引用对象的地址,引用完后,栈空间地址立即被回收,堆空间等待GC a) 栈内的数据线程之间独立 b) 具体细分为: b.1) 基本类型变量区 b.2) 执行环境上下文 b.3) 操作指令区 4 栈内存的变量使...转载 2018-11-18 14:00:58 · 1208 阅读 · 0 评论 -
java程序易错点的面试题
分析程序看有没有问题,如果有,说出原因即可1.abstract class Name { private String name; public abstract boolean isStupidName(String name) {}//这边出错了 public abstract boolean isStupidName(String name);} 2...原创 2018-11-26 15:53:46 · 664 阅读 · 0 评论 -
java中特殊流总结
一、数据流 (Java 数据类型) DataOutputStream: 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。 DataInputStream: 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。 二、内存操作流(临时存储的 程序结束就消失) -...原创 2019-01-03 19:43:00 · 282 阅读 · 0 评论