自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

the Commitments的博客

自我学习成长博客,知识共享,也希望对你有所帮助。

  • 博客(39)
  • 收藏
  • 关注

原创 Java笔试面试总结——基础篇

Java基础篇一、 接口二、 反射三、 String四、 String和byte[]之间的转化五、 ClassNotFoundException六、 HashCodehashCode简介hashCode注意点hashCode作用为什么重写hashCode一、 接口一、 接口一、 接口一、 接口一、 接口一、 接口一、 接口传送点:深入浅出,理解Java接口二、 反射传送点:Java基础反射原理(去年小米面试问到过)三、 String1.Java的String类型为什么是不可变的(百度)

2020-09-28 15:32:55 242

原创 故园无此声:Java集合框架简述

前言:早在Java2之前,Java就提供了特设类,比如:Dictionary,Vector,Stack和Properties这些类用来存储和操作对象组。虽然这些类都非常有用,,但是他们缺少一个核心的统一的主题。由于这个原因,使用Vector类的方式和使用Properties类的方式有着很大不同。集合简介:集合框架被设计成满足以下几个目标:该框架必须是高性能的,基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。对一个集合

2020-09-27 11:13:13 154

原创 Java数据结构概览

前言Java工具包提供了强大的数据结构,在Java中的数据结构主要包括以下几种接口和类:枚举(Enumeration)枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。枚举(Enumeration)接口定义了一种从数据结构中取回连续元素的方式。例如,枚举定义了一个叫nextElement的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。位集合(BitSet)位集合实现了一组可以单独设置和清除的位或标志。该类在处理一组布尔值的时候非常有

2020-09-25 14:12:46 144

原创 美人背看内园中:Java内部类

前言内部类平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下。从开发的角度来讲,内部类能少用就少用,优先考虑普通类。内部类的基本概念在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类形式如下:package.com.las;class Outer{ private String msg="Hello World"; class Inner{ public void print(){

2020-09-25 13:06:43 222

原创 单衫杏子红,双鬓鸦雏色:【单例模式】饿汉VS懒汉

实例:class Singleton{ public void print(){ System.out.println("Hello World!"); }}public class Test{ public static vid main(String[] args){ Singleton inst=null;//声明对象 inst=new Singleton();//实例化对象

2020-09-25 11:05:14 140

原创 Java基础篇:多线程编程

前言Java给多线程编程提供了内置的支持,一条线程指的是进程中一个单一顺序的控制流,一个进程可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语——进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程,一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。多线程能满足程序员编写高效率的程序来达到充分利用CPU的目的。一个线程的生命周期线程是一个动态

2020-09-24 17:15:46 96

原创 java.lang.String用法简述

一、得到字符串对象的有关信息(1)通过调用length()方法得到String的长度,例如:String str="This is a String";int len=str.length();(2)StringBuffer类的capacity()方法与String类的length()的方法类似,但是它测试是分配给StringBuffer的内存空间的大小,而不是当前被使用的内存空间。(3)如果想确定字符串中指定的字符或者字符串在给定字符串的位置,可以用indexOf()和lastIndexOf(

2020-09-24 13:31:53 542

原创 Java中final的用法简述

一、final变量一旦声明的final变量被赋值后,就不能改变该变量的值。一个既是static又是final的字段只占据一段不能改变的存储空间。二、final方法final定义的方法不能重写,一个定义为private的方法隐式的被指定为final类型。定义为final的方法可以使运行时的效率优化。三、final类定义为final的类不能被继承,不能再派生子类。将某个类定义为final形式,类中的所有方法都被隐式地设置为final形式,但类中的成员变量可以被定义为final或者final形式。.

2020-09-24 10:19:20 392

原创 一万小时学编程:Java线程池原理

一万小时学编程系列《一万小时定律》格拉德威尔:“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成世界级大师的必要条件。”文章目录一万小时学编程系列前言一、并发队列1.概念2.分类二、线程池简介三、线程池原理1.ThreadPoolExecutor核心类2.线程池原理图3.线程池实例总结前言线程池是学习Java的重点也是难点,在面试中也会经常问到,尤其是对“高并发”有较高要求的企业,所以学好线程池原理很重要,本文是我参考大佬的博客写的,后

2020-09-18 16:21:53 123

原创 Java泛型以及自定义泛型

之前有一篇文章讲过泛型了,今天再来复习一下。一、什么是泛型和泛型的作用JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样会不可避免的引发程序一些安全性问题。例如:ArrayList list=new ArrayList();list.add("abc");Integer num=(Integer) list.get(0);//运行时才会报错,编译时发现不了再例如:在遍历集合的时候,无法遍历,因为放入集合中的数据类型是不确定的List list=new

2020-09-18 10:02:30 288

原创 一万小时学编程:Static用法理解加例子

一万小时学编程系列Static用法详解文章目录一万小时学编程系列前言一、怎么理解static(静态)?1.举例理解静态2.什么时候使用静态3.静态的特性二、静态的使用1.static定义属性2.static定义方法3.Java主方法总结前言Java关键字static用途非常广泛,但很多人并没有深入理解它的内涵,今天我们通过这篇文,用大白话加实例来带大家深入了解一下static。一、怎么理解static(静态)?1.举例理解静态如何理解Java中的静态变量?静态方法呢?首先我们捋一下Jav

2020-09-17 11:29:10 235

原创 数组的简单算法(复制,反转,冒泡排序,线性查找等)

数组的简单算法(复制,反转,冒泡排序,线性查找等)1.数组复制2.数组反转3.冒泡排序4.线性查找5.补充:首先我们创建一个int型数组,然后依次进行以下操作: int[] arr=new int[] {23,45,3,-4,-76,44,12,0};1.数组复制数组复制就是再创建一个数组,大小和数组元素都跟原来的数组一样,切记,不能直接arr1=arr这样,因为这样只是将数组的指针赋给了arr1,本质上还是同一个数组。//1.数组复制 System.out.println("-----

2020-09-16 22:28:12 224

原创 eclipse移动一个或多个类到另一个包里

1.移动一个或多个类到另一个包:选中一个或多个类 右键——Refactor(Alt+Shift+T)(即重构)——Move(Alt+Shift+V)——在弹出的对话框中包列表中选择你要移动到的包——OK(或直接在选中所有的类后再按快捷键:Alt+Shift+V)2.移动一个或多个包到另一个包里:方法一:选中你要移动的包(比如com.B,要移动到另一个包com.A)——按F2——重命名为com.A.B——OK方法二:选中你要移动的包——Refactor(Alt+Shift+T)——Rename(Al

2020-09-16 20:07:32 1271

转载 CSDN快速转载文章的方法

问题: 在csdn没有一键转载功能,自己重新编写又比较麻烦。经我搜索后发现之前别人写的方法对于目前的csdn需要做些小小的改动 解决方法 1.这里以我的一篇文章为例,我们进入文章页面,然后按F12或者鼠标右键选择检查(谷歌浏览器下,其他浏览器可能是审查元素之类的) 2.选中下面的任意一行然后按Ctrl+F快速搜索在最下面的输入框填入content_views(之前别人说的方法都是选中article_content,目前来说这样会把最下面的点赞收藏也复制上) 3.我们看到可以快速搜索到..

2020-09-16 17:31:47 197

原创 杨辉三角,回形数的实现

杨辉三角,回形数的实现杨辉三角回形数回形数实现方式一:回形数实现方式二:杨辉三角关于杨辉三角的内容再数学上应用很广,也是一个很重要的定理,要了解的朋友去百度,我们这里只考虑用二维数组实现。package Test;/** * 杨辉三角 * 提示: * 1.第一行又1个元素,第n行有n个元素 * 2.每一行的第一个元素和最后一个元素都是1 * 3.第三行开始,对于非第一个元素和最后一个元素,即: * Pascal[i][j]=pascal[i-1][j-1]+pascal[i-1][j];

2020-09-16 07:02:21 122

原创 从熵值看人生

根据熵增原理,所有有序的东西变无序是很容易的,而无序变有序必然有一个困难的过程,这一点反映在人生历程中也是有一明证的。一个人出身贫寒,想要出人头地,去大城市闯荡,这就是一个增熵的过程。你如何一步步通过自己的努力让“熵”增加,当“熵”达到一定值的时候必然会有化学变化。类似于量变产生质变。这个社会中人就相当于很多的小分子,绝大多数分子的“熵”值都是差不多的,让“熵”值增加的过程其实就是一个努力的过程,你做的每一件事都会或多或少的影响“熵”值。这种影响分为正向负向的,绝大多数人这种影响正负抵消,所以他们的生活会按

2020-09-15 11:22:53 1365

原创 Java泛型详解,适合初学者

Java 泛型详解一、泛型的引出二、泛型的定义和使用三、泛型通配符四、泛型接口五、泛型方法六、泛型小结一、泛型的引出假设要求定义一个表示坐标的操作类(Point),这个类可以表示三种类型的坐标:(1)整数坐标:x=10、y=20;(2)小数坐标:x=10.1、y=20.3;(3)字符串坐标:x=“东晋100度”、y=“北纬20度”;分析:类中想保存以上数据,一定需要定义x和y两个属性,而这两个属性可以接受三种数据类型,这样的话,只能使用Object类来定义会比较合适,这样会发生如下几种转换关系

2020-09-15 10:48:05 160

原创 一万小时学编程:Java异常的捕获与处理

Java异常的捕获与处理一、异常的产生异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就将中断执行。下面,通过两个程序来进行异常产生问题的对比。(1)不产生异常的程序:public class Test{ public static void main(String[] args){ System.out.println("1,除法计算开始。"); int result=10/2;

2020-09-11 11:25:09 164 1

原创 API帮助文档(中文)——拿走不谢

# Java—JDK 1.8 API 帮助文档—中文版    百度   网盘地址:%28https://pan.baidu.com/s/1cZJIoXkTAxYtnc2EA08p8g%29提取码:22jh我最大的心愿就是能让你留下一个记号~~

2020-09-10 19:42:40 8957 18

转载 Java基础反射原理(去年小米面试问到过)

反射式框架设计的灵魂一丶反射的概述二丶查看Class类在Java中的api详解(1.7中API)三丶反射的使用(这里使用Student类做演示)1:获取Class对象的三种方式2:通过反射获取构造方法并使用3:获取成员变量并调用4:获取成员方法并调用5:反射main方法6:反射方法的其他使用之通过反射运行配置文件内容7:反射方法的其他使用之通过反射越过泛型检查(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.Class文件(字节码))一丶反射的概述Java反射机制是在运行状态

2020-09-10 17:39:14 120

原创 舍友想加学霸微信,结果给了他一段代码......

两个一维数组问题:I:舍友疯狂追求一个程序员美女,美女不耐烦了,给了他一段代码,说“我的微信号就在程序里面。”,舍友来求助我了。int[] arr=new int[]{8,5,1,9,0,2,3};//创建一维数组arr,并赋值int[] index=new int[]{2,0,1,4,2,3,5,6,4,1,3};//创建一维数组index,并赋值String tel="";//声明一个String类型的变量,用于将数字累加到里面for(int i:index){//for循环遍历index数组

2020-09-09 09:18:48 350

原创 线程通信——经典的生产者—消费者问题

线程通信,经典的生产者消费者问题:在一个商店里,售货员负责销售某件产品,生产者将产品交给售货员,而消费者取走产品,假设商店里产品数量不能超过20个,如果生产更多产品售货员会让生产者停下,等数量少于20时继续生产;如果没有产品了售货员会告诉消费者等待,等产品来了再通知消费者取走产品。上代码:package java1;class Clerk{ private int number=0; public synchronized void consumeProduct() { if(numbe

2020-09-07 22:14:30 114

原创 线程通信的一个例子

线程通信的一个小李子:使用两个线程打印1——100的数字,线程1,线程2交替打印废话不多说,直接上代码。这个程序我们分三步来讲解,第一步:用实现Runnable的方法创建两个线程,输出1——100的数字。...

2020-09-07 20:54:32 179

原创 深入浅出,理解Java接口

详解Java接口基本概念接口的使用基本概念接口(Interface),在Java编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法。如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法都没有。范例:定义一个接口interface A{ public static final St.

2020-09-03 14:25:24 293 2

原创 一起来理解一下Java类和对象

一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成了C++,而由C++产生了Java这门面向对象的编程语言。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并

2020-09-01 17:33:49 187 1

原创 问君Java线程创建有几何?

1.继承Thread类实现多线程run()为线程类的核心方法,相当于主线程的main()方法,是每个线程的入口一个线程调用两次start()方法将会抛出线程状态异常,也就是start()只可以调用一次native声明的方法只有方法名,没有方法体。是本地方法,不是抽象方法,而是调用c语言方法,registerNative()方法包含了所有与线程相关的操作系统方法run()方法是由JVM创建完本地操作系统及线程后回调的方法,不可以手动调用,通过start调用public class MyThrea

2020-08-31 17:17:05 204 1

原创 线程的Thread创建方式以及Thread中几种常用方法

Thread创建线程主要分为四步:创建一个线程类继承于Thread类在该类中重写Thread的run()方法,该方法中生命线程的操作在主线程中创建该类的对象引用start()方法,启动线程话不多说,直接上代码:class MyThread extends Thread{// 1. 创建一个线程类继承于Thread类 @Override public void run(){//2. 在该类中重写Thread的run()方法,该方法中生命线程的操作.重写run方法,输出1

2020-08-31 09:35:01 677 1

原创 PerfectNumber!(两个完数代码)

完数即指一个数的所有因数相加为它本身(如6=1+2+3:不包含6本身),求出10000以内的完数。代码一:public class PerfectNumber{ public static void main(String[] args){ for(int i=1;i<=10000;i++){ int factor=0 for(int j=1;j<=i/2;j++){ .

2020-08-28 10:23:32 159

原创 学会Java线程,这一篇就够了!

一级标题二级标题三级标题四级标题五级标题六级标题

2020-08-26 13:55:11 159 1

转载 史上最全Java的读写操作(转载)

史上最全Java的读写操作(转载)Java的I/O系统中的输入输出流为我们进行开发提供了很多便利,利用其强大的封装性,通过各种组合能够实现多种多样的功能。但是Java提供了很多输入输出流类,在概念和使用上有很多相似之处,所以给很多开发者带来了困扰,何时应该用何种输入输出流类成为一个问题。以下即是Java输入输出流类的介绍,并附有实例说明,对各个类的用法都有简要分析。输入输出流类介绍1.stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的strea

2020-08-26 11:15:32 303

原创 Java循环语句中break和continue的区别

break和continue的区别break和continue的用法带标签的(break和continue)的区别break和continue的用法break指跳出当前循环,指的是整个循环体;continue指跳出本次循环,进入下次循环。public class BreakAndContinueTest{ public static void main(String[] args){ for(int i=1;i<=4;i++){

2020-08-26 09:13:14 671

原创 腾讯面试题:64匹马,8个赛道,找出跑的最快的四匹。

64匹马,8个赛道,找出跑的最快的四匹,最少需要几次比赛?第一步:第二步:第三步:第四步:补充:第一步:将64匹马分为八组,在八个赛道进行比赛,每组的后四名直接淘汰。(因为要找最快的四匹马,所以这些排在每组第四名后面的必然不能进总的前四,直接淘汰!)【8次比赛】第二步:将每组的第一名进行比赛,淘汰后四名组的所有组员。(将每组的第一名组成一个组比赛,后四名直接淘汰了,那么这后四名的组员成绩还没有它们第一名的好,肯定可以直接淘汰掉,所以此时还剩下图中黄色区域的16匹马)【1次比赛】第三步:假设刚

2020-08-25 10:23:17 1992 2

原创 Java基础,For循环嵌套质数算法及优化。

PrimeNumber算法及优化面试题目质数的普通算法质数的优化算法面试题目设计算法输出100000以内的质数。质数的普通算法这是Java的for循环嵌套的基础算法,质数就是除了1和它本身之外再没有约数的数,再设立一个布尔标记,就可以得出来,代码如下。/* * 100000以内的所有质数 */public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100000;i++)

2020-08-25 09:04:15 433 1

原创 什么是形参?实参?命令行参?可变参数?

什么是形参?实参?命令行参数?可变参数?今天读文章遇到的,有些概念不太清楚,Mark一下!形参形参是parameter,在定义方法时后面跟的参数就是形参,全称为“形式参数”。实参实参是argument,在调用方法时后面跟的参数就是实参,全称为“实际参数”。形参和实参的特点1:实参和形参可以重名。2:实参可以是常量、变量、表达式、方法。3:形参是一个局部变量,其初始值为相应实参的值。命令行参数命令行参数指命令行中给定的参数。可变参数Java可变参数是1.5版本的新特性,当定义的方法不

2020-08-24 08:39:04 2354

转载 Java线程的六种状态及切换(详解)

Java中线程的状态分为6种。初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。3.阻塞(BLOCKED):表示线程阻

2020-08-19 17:10:51 136

原创 一个键盘输入Scanner类的小例子

一个简单的Scanner小程序介绍程序源码第一个盲打的程序。运行成功了!介绍一个简单的键盘输入数据然后输出程序,为了增加可读性我加入了一个if语句。因为键盘输入要用到Scanner类,所以需要导入一下。发现自己读了很多代码,盯着代码都认识,合上书什么都敲不出来很尴尬,这个代码是我盲打的,而且运行成功了,以后敲代码这块还得多练,搞程序就像练武功,什么语法,原理这些就是内功,所以平常看书,看论坛相当于修炼内功心法;代码这块就是外功,多敲多练才能提高武术,内外兼修才能成为武林高手。程序源码import

2020-08-19 09:12:40 174

原创 小知识:Java中冒号(:)有哪些用法?

今天读博客时看到这样一段代码://遍历集合Set<String> keys = prop.stringPropertyNames();for (String key : keys) { //通过键 找值 //prop.get(key) String value = prop.getProperty(key); System.out.println(key+"==" +value);}这里的冒号是什么意思了?就百度了一下,原来是遍历集合的意思,Rando

2020-08-18 15:38:54 1439

原创 浅析View的事件分发机制

最近在读任玉刚老师的《Android开发艺术探索》,书里面很多内容都讲的很深入透彻,但对我一个初学者而言是有一定难度的,今天我就根据这几天的学习来简单的谈一下View的事件分发机制,本人菜鸟,有问题还请大家指出来,互相进步!View事件分发机制什么是VIEW事件分发机制点击事件怎么传递?伪代码分析总结什么是VIEW事件分发机制简单点说,当你点击一个Button的时候,希望它对你的点击事件作出反应,那么你点击这个结果是怎么传递到button上面的?当你的手指点击屏幕时,会经过底层(Linux之类)的传递

2020-08-18 12:44:05 130

原创 常用的DOS命令,JDK,JRE

Java基础知识复习

2020-08-18 10:21:13 263 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除