
java学习
日常学习分享,知识是在不断分享中更新的
TuneG
梦想,是一个人的万千热爱
展开
-
equals()和hashCode()方法总结
在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况 下,这两个函数是不用考虑的,直接使用它们的默认设计就可以了。但是在一些情况下,这两个函数最好是自己设计,才能确保整个程序的正常运行。最常见的是当 一个对象被加入收集对象(collection object)时,这两个函数必须自己设计。更细化的定义是:如果你想...原创 2019-12-31 14:34:10 · 303 阅读 · 0 评论 -
算术移位和逻辑移位详解
大部分的C编译器,用移位的方法得到代码比调用乘除法子程序生成的代码效率高。移位运算是将数值向左向右移动,对于十进制来说就是实现放大十倍和缩小十倍的效果,而对于二进制而言就是放大两倍和缩小两倍的效果整数的乘除法一个自己曾经忽视的东西,那就是C/C++中的移位操作容易出错的情况。1、什么样的数据类型可以直接移位char、short、int、long、unsigned char、unsig...原创 2019-12-17 09:51:02 · 31681 阅读 · 9 评论 -
算法基础—Hash算法
1.Hash介绍Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。所有散列函数都有如下一个基本特性:根据同...原创 2019-12-13 15:48:58 · 425 阅读 · 0 评论 -
Java中数组初始化深度分析
数组初始化在C中初始化数组极易出错,而且相当麻烦。C++通过“集合初始化”使其安全。Java则没有像C++那样的“集合”概念,因为Java中的所有东西都是对象。但它确实有自己的数组,通过数组初始化来提供支持。数组代表一系列对象或者基本数据类型,定义数组,有两种方式int[] a1;int a1[];后一种方式与C和C++习惯的格式是一致的,但是,最“通顺”的还是前一种语法,因为它指出...原创 2019-12-12 10:20:28 · 295 阅读 · 0 评论 -
源码分析---HashMap中链表和红黑树的转换阈值
HashMapJDK1.8 以前HashMap的实现是 数组+链表JDK1.8 开始HashMap的实现是 数组+链表+红黑树JDK1.8以前,HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。从上图中可以看出,HashMap 底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个 HashMap的时候,就会初始化一个数组。JDK1.8后,HashMa...原创 2019-12-05 13:05:21 · 3053 阅读 · 0 评论 -
Java基础---继承和接口
抽象类建立了一种基本形式,使我们能定义在所有衍生类里“通用”的一些东西。为阐述这个观念,另一个方法是把Instrument称为“抽象基础类”(简称“抽象类”)。若想通过该通用接口处理一系列类,就需要创建一个抽象类。对所有与基础类声明的签名相符的衍生类方法,都可以通过动态绑定机制进行调用(然而,如果方法名与基础类相同,但自变量或参数不同,就会出现过载现象(重写),那或许并非我们所愿意的)。如果...原创 2019-12-04 10:06:12 · 326 阅读 · 0 评论 -
Java基础---BitSet源码分析
适用场景:整数,无重复一. Bitset 基础Bitset,也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计中。上面的图来自c++库中bitset的一张图。基本原理是,用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用的时候根据某一个是否为0表示此数是否出现过。一个1G的空间,有 8102410241024=8.5810^9bi...原创 2019-12-02 19:02:03 · 364 阅读 · 0 评论 -
Java中Vector的使用
Vector的介绍/** * Vector is a variable size contiguous indexable array of Objects. The size of * the Vector is the number of Objects it contains. The capacity of the Vector * is the number of Objects...原创 2019-12-02 14:00:35 · 1262 阅读 · 0 评论 -
Java基础之Java中label标签的用法---以retry为例
//retry的用法/*-----------------------注释1,输出 0 1 2 3 4 注释2,输出 0 1 2 3 4 6 7 8 9相当与一个标识符,break,continue,跳到该标识符处retry在循环外,break retry;//跳出循环(continue retry;效果一样,跳出循环)retry在循环内,break retry;//结束此次循环,...原创 2019-11-22 11:31:29 · 986 阅读 · 0 评论 -
Java基础面试题
声明:资料来源宇网络,如有侵权,立即删除!考虑到 Java 涉及的知识点非常非常非常之多,所以我们会分成五大篇来分享,分别是: Java【基础】 本文。???? 分不到其它类别里的,都会放到本文。 Java【集合】 Java【并发】 Java【网络】 因为 Java 网络编程大多使用 Netty ,所以面试题统一整理到《精尽 Netty 面试题...原创 2019-11-19 12:38:02 · 347 阅读 · 0 评论 -
AWT编程
图形用户界面 作为一个程序设计者,必须优先考虑用户的感受,一定要让用户感到“爽”,我们的程序才会被需要、被使用,这样的程序才有价值。 当JDK1.0发布时,Sun提供了一个基本的GUI类库,这个GUI类库希望可以在所有平台下都能运行,这套基本类库被称为“抽象窗口工具集(Abstract Window Toolkit)”,它为Java应用程序提供了基本的图形组件。 AWT简介...原创 2019-11-07 20:23:12 · 557 阅读 · 0 评论 -
Java基础(三)---异常处理
Java的异常体系异常捕捉流程使用try...catch捕获异常 执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,这个过程被称为抛出(throw)异常。 Java运行时环境收到异常对象时,会寻找能处理该异常对象的块,如果找到合适的块并把该异常对象交给该块处理,那这个过程被称为捕获()异常;如果运行时...原创 2019-10-30 09:05:33 · 300 阅读 · 0 评论 -
java基础(二)---Java集合总结
Java集合 为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组)。 Java提供集合类,集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。 所有集合类都位于java.util包下。 Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子...原创 2019-10-29 16:29:56 · 277 阅读 · 0 评论 -
JVM基础(一)---运行时数据区
前言:本系列自己在学习Java虚拟机规范(Java SE 8版)的总结笔记,旨在以后复习的时候方便查阅!《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新如有需求,可以自行去学习这本书!经典之作!Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和Ja...原创 2019-10-25 08:57:48 · 127 阅读 · 0 评论 -
java基础(一)----内存知识:栈和堆
总结:Java 的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。 堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用 new 创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量...原创 2019-10-19 19:29:27 · 170 阅读 · 0 评论 -
String,StringBuilder,StringBuffer 笔记(1)
概念:1、用来处理字符串常用的类有3种:String、StringBuffer和StringBuilder2、三者之间的区别:都是final类,都不允许被继承;String类长度是不可变的,StringBuffer和StringBuilder类长度是可以改变的;StringBuffer类是线程安全的,StringBuilder不是线程安全的;String 和 StringB...转载 2019-10-18 13:54:19 · 121 阅读 · 0 评论 -
String,StringBuilder,StringBuffer 笔记(2)
定义: 从jdk1.5开始提供的新的封装字符串的类,StringBuilder,其字符串拼接操作的效率远远高于 String。 Java里面提供了String,StringBuffer和StringBuilder三个类来封装字符串简介: 我们知道字符串其实就是由若干个字符线性排列而成的,可以理解为字符数组Array,那么既然是数组实现的,那就需要考虑到数组的特性,...转载 2019-10-18 13:53:24 · 221 阅读 · 0 评论 -
Java中return用法
Java中return用于方法,两个作用:(1)返回方法指定类型的值(这个值总是确定的),也可以是对象(2)方法的结束两种形式:(1)有返回类型 例如:return i; (2)无返回类型return;一般方法前有void代表无返回值,没有void有返回值。例子:public class Test{ public s...原创 2019-10-17 10:17:59 · 624 阅读 · 0 评论 -
内部类
内部类定义我们把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,有的也叫嵌套类,包含内部类的类也被称为外部类有的也叫宿主类; 内部类提供了更好的封装,内部类成员可以直接访问外部类的私有数据,因为内部类被当成其他外部类成员; 匿名内部类适合用于创建那些仅需要一次使用的类。非静态内部类 定义内部类非常简单,只要把一个类放在另一个类内部定义即可。...原创 2019-10-15 10:27:12 · 118 阅读 · 0 评论 -
Java基本数据类型
JAVA基本数据类型所占字节数是多少?byte/1字节 short/2字节J int/4字节 long/8字节 char/2字节(C语言中是1字节)可以存储一个汉字 float/4字节 double/8字节 boolean/false/true(理论上占用1bit,1/8字节,实际处理按1byte处理)JAVA是采用Unicode编码。每一个字节占8位。你电脑系统应该是 32位...原创 2019-10-12 09:47:24 · 232 阅读 · 0 评论 -
Java修饰符总结
分类Java语言提供了很多修饰符,大概分为两类:访问权限修饰符 非访问权限修饰符访问权限修饰符public:共有访问。对所有的类都可见。 protected:保护型访问。对同一个包可见,对不同的包的子类可见。 default:默认访问权限。只对同一个包可见,注意对不同的包的子类不可见。 private:私有访问。只对同一个类可见,其余都不见。非访问权限修饰符...原创 2019-10-11 15:00:40 · 145 阅读 · 0 评论 -
win7系统nginx安装配置问题
本篇文章是自己在安装nginx过程中遇到的问题,查阅资料后,最终也成功解决了记录下来,以便于日后查阅!1.下载安装nginxhttp://nginx.org/en/download.html 下载稳定版本,以nginx/Windows-1.10.2为例,直接下载nginx-1.10.2.zip下载后解压,解压后如下2.启动nginx有很多种方法启动ngi...原创 2019-10-11 09:58:32 · 595 阅读 · 0 评论 -
Java和C++的区别
整理总结如下:都是面向对象的语言,都支持封装、继承和多态 Java 不提供指针来直接访问内存,程序内存更加安全 Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。 Java 有自动内存管理机制,不需要程序员手动释放无用内存...原创 2019-10-10 13:46:47 · 113 阅读 · 0 评论 -
Git和Github入门实践
本篇文章来源于实验楼Git和Github入门实践教程,根据自己的总结,写下来这篇文章。实验楼地址:https://www.shiyanlou.com/目录一、克隆 GitHub 上的仓库到本地二、一次完整的修改、提交、推送操作2.1 对工作区进行修改2.2 添加修改到暂存区以及撤销修改2.3 查看提交历史2.4 配置个人信息2.5 提交暂存区的修改三、版本回...原创 2019-10-10 13:03:28 · 481 阅读 · 0 评论 -
转载—java常量池知识总结
原文作者:梦工厂原文出处:https://www.jianshu.com/p/c7f47de2ee80此篇文章,旨为方便查询、总结备份、开源分享。部分转载内容均有注明出处,如有侵权请告知,马上删除。一.相关概念 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常...转载 2019-10-09 12:58:39 · 117 阅读 · 0 评论