Java基础
文章平均质量分 72
毕富国
这个作者很懒,什么都没留下…
展开
-
ArrayList源码
属性静态属性private static final int DEFAULT_CAPACITY = 10; //默认初始容量private static final Object[] EMPTY_ELEMENTDATA = {}; //空数组,指定初始容量是0时返回private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; //默认数组private static final int MAX_ARR原创 2022-05-17 09:23:41 · 238 阅读 · 0 评论 -
JAVA虚拟机发展
一、java发展史1995年5月23日,Oak语言改名为Java,并且在SunWorld大会上正式发布Java 1.0版本。Java语言第 一次提出了“Write Once,Run Anywhere”的口号。1996年1月23日,JDK 1.0发布,Java语言有了第一个正式版本的运行环境。JDK 1.0提供了一个纯 解释执行的Java虚拟机实现(Sun Classic VM)。JDK 1.0版本的代表技术包括:Java虚拟机、Applet、 AWT等。1996年4月,十个最主要的操作系统和计算原创 2021-08-19 10:22:07 · 639 阅读 · 0 评论 -
常用注解
@PostConstruct和static静态块初始化的区别@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。static blocksare invoked when the class is being initialized, after it is loaded. The dependencies of yourcomponenthaven't been initialized yet. That is why you get aNullPoi...原创 2020-10-19 13:41:17 · 283 阅读 · 0 评论 -
JAVA、JS、Mysql数据库获取当月第一天和最后一天
JAVA//获取前月的第一天 Calendar cal_1=Calendar.getInstance();//获取当前日期 cal_1.add(Calendar.MONTH, -1); cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 firstDay = format.format(cal_1.getTime()); System.out.println...原创 2020-10-19 13:34:25 · 643 阅读 · 0 评论 -
Java基本语法(二)
流程控制1.顺序结构 >程序从上往下的顺序执行2.分支结构: if-else switch-case3.循环结构: while(){} do{}while() for(;;){}分支结构1.条件判断:①if(条件表达式){ }②if(条件表达式){ //执行的语句1; }else{ //执行的语句2; ...原创 2018-07-24 20:26:38 · 144 阅读 · 0 评论 -
将一个数转换为16进制,不使用系统库函数
import java.util.Scanner;public class to16 { public static void main(String[] args) { //将一个数转换为16进制 Scanner s=new Scanner(System.in); System.out.println("请输入一个整数:"); int i=s.nextInt...原创 2018-07-24 20:30:26 · 644 阅读 · 0 评论 -
面向对象实验一
实验 1、将对象作为参数传递给方法。题目要求:(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积。(2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:public void printAreas(Cirlce c, int time)在printAr...原创 2018-07-28 17:15:03 · 1085 阅读 · 0 评论 -
数组
数组:相同数据类型的数据的组合。如: int score1 = 72; int score2 = 90; int score3 = 59;使用数组:1.数组的初始化 int[] scores1 = new int[]{72,90,59};//静态初始化:在声明并初始化数组与给数组相应的元素赋值操作同时进行。 int scores2[] = ...原创 2018-07-25 19:37:51 · 188 阅读 · 0 评论 -
面向对象编程、类和对象的概念
面向对象编程1.(了解) 面向对象 vs 面向过程 例子:人开门;把大象装冰箱2.面向对象的编程关注于类的设计!1)一个项目或工程,不管多庞大,一定是有一个一个类构成的。2)类是抽象的,好比是制造汽车的图纸。 而具体的一辆一辆的车,是根据图纸制造的,实际上就是类的实例化3.完成一个项目(或功能)的思路1)所要完成的功能对应的类的对象是否存在。2)若存在,则通过对...原创 2018-07-29 14:04:09 · 861 阅读 · 0 评论 -
方法的重载(overload)
* 方法的重载(overload) * 要求:1.同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同) * 补充:方法的重载与方法的返回值类型没有关系!//如下的四个方法构成重载//定义两个int型变量的和public int getSum(int i,int j){ return i + j;}//定义三个int型变量的和publ...原创 2018-07-29 14:05:13 · 492 阅读 · 0 评论 -
可变个数的形参的方法
* 可变个数的形参的方法: * 1.格式:对于方法的形参: 数据类型 ... 形参名 * 2.可变个数的形参的方法与同名的方法之间构成重载 * 3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以。 * 4.使用可变多个形参的方法与方法的形参使用数组是一致的。 * 5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后。 * 6.在一个方法中,最多声明一个可变个数的形参。...原创 2018-07-29 14:05:59 · 362 阅读 · 1 评论 -
java值的传递机制
重点、难点* 方法的参数传递(重点、难点) * 1.形参:方法声明时,方法小括号内的参数 * 实参:调用方法时,实际传入的参数的值 * * 2.规则:java中的参数传递机制:值传递机制 * 1)形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量 * 2)形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的对象实体的首地址值)传递给形参的引...原创 2018-07-29 14:07:55 · 1128 阅读 · 0 评论 -
面向对象的特性一:封装性;构造器、this关键字、package/import
面向对象的特性一:封装性 * 一、面向对象的特征一:封装与隐藏 * 问题:当创建了类的对象以后,如果直接通过"对象.属性"的方式对相应的对象属性赋值的话,可能会出现不满足实际 * 情况的意外,我们考虑不让对象来直接作用属性,而是通过"对象.方法"的形式,来控制对象对属性的访问。实际 * 情况中,对属性的要求就可以通过方法来体现。 * 二、面向对象思想的落地法则二:(封装性的思想)①...原创 2018-07-29 14:11:05 · 155 阅读 · 0 评论 -
面向对象的特性二:继承性;关键字super;子类对象实例化的全过程
面向对象的特性二:继承性1.为什么要有继承性:2.通过"class A extends B"类实现类的继承。 * 子类:A 父类(或基类 SuperClass):B * * 3.子类继承父类以后,父类中声明的属性、方法,子类就可以获取到。 * 明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接 * ...原创 2018-07-29 14:15:10 · 444 阅读 · 0 评论 -
面向对象特征三:多态性;Object类;包装类
面向对象特征三:多态性1.多态性的表现:①方法的重载与重写 ②子类对象的多态性2.使用的前提:①要有继承关系 ②要有方法的重写3.格式:Person p = new Man();//向上转型 // 虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法 p1.eat(); p1.walk();...原创 2018-07-29 14:17:54 · 173 阅读 · 0 评论 -
方法的重载与重写的区别?
1.方法的重写(override orverwrite) vs 重载(overload)【面试题】方法的重载与重写的区别?重载:“两同一不同”:同一个类,同一个方法名,不同的参数列表。 注:方法的重载与方法的返回值无关! >构造器是可以重载的重写:(前提:在继承的基础之上,子类在获取了父类的结构以后,可以对父类中同名的方法进行“重构”) 方法...原创 2018-07-29 14:22:08 · 262 阅读 · 0 评论 -
Java基本语法
关键字:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)保留字:byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const 标识符:凡是自己可以起名字的地方都叫标识符命名的规则:(一定要遵守,不遵守就会报编译的错误)由26个英文字母大小写,0-9 ,_或 $ 组成 ...原创 2018-07-21 12:37:13 · 495 阅读 · 2 评论 -
Java语言概述
1.软件 : 系统软件 vs 应用软件2.人与计算机做交互:使用计算机语言。 图形化界面 vs 命令行方式 常用的DOS命令:dir : 列出当前目录下的文件以及文件夹md : 创建目录rd : 删除目录cd : 进入指定目录 cd.. 退回到上一级目录cd\: 退回到根目录d...原创 2018-07-20 18:24:57 · 367 阅读 · 0 评论 -
Linux下的Java
申明一个临时的环境变量(只在单前打开的终端有效) export 变量名=变量值 环境变量的调用echo $变量名 查看命令所处的位置which 命令关键字 e.g.: which ls - -> /bin/ls echo $PATH 查看单前系统的所有命令存放的位置注意:操作的命令都是基于PATH找到的 PS1=‘用户名’ 设置用户在终端显示的名字 exp...原创 2018-07-26 17:07:38 · 990 阅读 · 0 评论 -
Linux配置jdk
Oracle官网下载linux版jdk配置jdk,linux下的配置方式 1找到jdk的位置 sudo tar -xzvf jdk-8u91-linux-x64.tar.gz -C /opt 2.给/opt下的jdk建快捷方式(链接文件), cd /opt sudo ln -s jdk1.8.0_91 jdk 3.回到家目录,打开.bashrc cd ~ vi...原创 2018-07-26 17:09:23 · 187 阅读 · 0 评论 -
jdk bin目录下部分命令作用
1、java.exe:======================运行java程序,这个相信每一位用Java的人知道了。2、javac.exe:======================编译的Java程序,生成.class文件3、javaw.exe:======================功能:跟java命令相对的,可以运行.class文件,主要用来执行图形界面的j...原创 2018-07-26 17:12:59 · 2475 阅读 · 0 评论 -
Java历史
1991年4月,由James Gosling博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个计划的产品就是Java语言的前身:Oak(橡树)。Oak当时在消费品市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java语言。1995年5...原创 2018-07-26 17:13:32 · 414 阅读 · 0 评论 -
【面试】交换两个数的三种方式
交换两个数的三种方式方法一:提供一个临时变量。 temp=m; m=n; n=temp;方法二:先将两个数加在一起 m=m+n; n=m-n; m=m-n; 当m和n较大时,有可能出现精度失准方法三:采用异或算法 m=m^n; ...原创 2018-07-22 18:28:29 · 335 阅读 · 0 评论 -
Java基础 —— 操作符;条件语句;循环语句; 变量
目标: 1. 操作符; 2. 条件语句; 3. 循环语句; 4. 变量----------------------------------------------1.java中变量的介绍 程序的基本功能是处理数据 程序用变量来接收并表示数据; 程序中必须先定义变量才能使用; 定义变量...原创 2018-07-30 19:28:49 · 273 阅读 · 0 评论 -
Java基础--标识符、关键字和类型介绍、如何构建类
目标: 1. 标识符、关键字和类型介绍 2. 如何构建类---------------------------------1.java代码中的注释 作用:使部分内容只为程序员可见,不为编译器所编译、虚拟机所执行 位置:类声明前后、方法声明前后、属性声明前后、方法体中。几乎可以在一个源文件任意位置,但不能在一个关键字字符中插入注释 类型:1) 单行注释...原创 2018-07-27 15:05:56 · 308 阅读 · 0 评论 -
将字符串转化为整数(不使用库函数)
题目描述输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串”123”,输出整数123。给定函数原型int StrToInt(String str) ,实现字符串转换成整数的功能,不能使用库函数 Integer.parseInt(str);分析与解法本题考查的实际上就是字符串转换成整数的问题,或者说是要你自行实现atoi函数。那如何实现把表示整数的字符串正确地转换成整...原创 2018-07-27 16:52:08 · 15488 阅读 · 3 评论 -
static关键字
1.static:静态的,可以用来修饰属性、方法、*代码块(或初始化块)、*内部类2.static修饰属性(类变量): * 1.由类创建的所有的对象,都共用这一个属性 * 2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。vs 实例变量(非static修饰的属性,各个对象各自拥有一套副本) * 3.类变量随着类的加载而加载的,而且独一份 * 4.静态的变量可以直接...原创 2018-08-04 18:39:36 · 164 阅读 · 0 评论 -
23种设计模式-单例模式:
23种设计模式单例模式:解决的问题:如何只让设计的类只能创建一个对象如何实现:饿汉式 & 懒汉式//饿汉式1class Bank{ //1.私有化构造器 private Bank(){} //2.创建类的对象,同时设置为private的,通过公共的来调用,体现封装性 //4.要求此对象也为static的 private static ...原创 2018-08-04 18:40:22 · 230 阅读 · 0 评论 -
mian()方法;代码块
mian()方法public static void main(String[] args){ //方法体 }//1.main()是一个方法,是主方法,为程序的入口//2.权限修饰符:public protected 缺省 private ---面向对象的封装性//3.对于方法来讲:static final abstract //4.方法的返回值:void / ...原创 2018-08-04 18:42:05 · 1865 阅读 · 0 评论 -
final关键字
final:最终的 ,可以用来修饰类、属性、方法1.final修饰类:这个类就不能被继承。如:String类、StringBuffer类、System类2.final修饰方法:不能被重写。如:Object类的getClass() 3.final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值。习惯上,常量用大写字符表示。此常量在哪里赋值:①此常量不能使用默认初始化 ②可以显式的赋...原创 2018-08-04 18:42:45 · 223 阅读 · 0 评论 -
抽象abstract
重点!abstract:抽象的,可以用来修饰类、方法 * 1.abstract修饰类:抽象类 * 1)不可被实例化 * 2)抽象类有构造器 (凡是类都有构造器) * 3)抽象方法所在的类,一定是抽象类。 * 4)抽象类中可以没有抽象方法。 * >当我们设计一个类,不需要创建此类的实例时候,就可以考虑将其设置为抽象的,由其子类实现这个类的抽象方法以后,就行实例化 * *...原创 2018-08-04 18:43:49 · 153 阅读 · 0 评论 -
接口(interface)、接口的应用:工厂方法的设计模式 、代理模式(静态代理)
* 接口(interface) 是与类并行的一个概念 * 1.接口可以看做是一个特殊的抽象类。是常量与抽象方法的一个集合,不能包含变量、一般的方法。 * 2.接口是没有构造器的。 * 3.接口定义的就是一种功能。此功能可以被类所实现(implements)。 * 比如:class CC extends DD implements AA * 4.实现接口的类,必须要重写其中的所有的抽象...原创 2018-08-04 18:47:01 · 255 阅读 · 0 评论 -
类的第5个成员:内部类
* 类的第5个成员:内部类 * 1.相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类 * 2.内部类的分类:成员内部类(声明在类内部且方法外的) vs 局部内部类(声明在类的方法里) * 3.成员内部类: * 3.1是外部类的一个成员:①可以有修饰符(4个)②static final ③可以调用外部类的属性、方法 * ...原创 2018-08-04 18:47:41 · 388 阅读 · 0 评论 -
java内部类——静态内部类、成员内部类、局部内部类、匿名内部类
内部类 在一个类的内部定义的类称为内部类。 内部类分为: 成员内部类 静态内部类 局部内部类 匿名内部类 顶层类(正常类)只能处于public和默认访问级别,而成员内部类可以处于public, protected, private和默认这4种访问级别; 1. 静态内部类; 例子:StaticOutterClass.java...原创 2018-08-09 16:12:09 · 254 阅读 · 0 评论 -
java异常处理
1.体系结构 java.lang.Object |----java.lang.Throwable |-------java.lang.Error:错误,java程序对此无能为力,不显式的处理 |-------java.lang.Exception:异常。需要进行处理 |------...原创 2018-08-09 16:19:36 · 116 阅读 · 0 评论 -
Java 之 23 种设计模式解析——概述、六大原则
题目:Java 之 23 种设计模式解析一、设计模式概述总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模...原创 2018-08-05 15:20:37 · 1026 阅读 · 0 评论 -
高级类特性2_练习&面试题
abstract class 和interface 有什么区别? 【基础】答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstra...原创 2018-08-09 17:30:31 · 211 阅读 · 0 评论 -
Java语言中关键字strictfp的用途
自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。strictfp, 即 strict float point (精确浮点)也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得...原创 2018-08-09 19:05:57 · 542 阅读 · 0 评论 -
面向对象编程_练习&面试题
哪个选项和show函数重载class Demo{ void show(int a,int b,float c){}}A.void show(int a,float c,int b){}//yesB,void show(int a,int b,float c){}//一模一样。不可以出现在同一个类中。C.int show(int a,float c,int b){return...原创 2018-08-09 19:55:43 · 1485 阅读 · 0 评论 -
java集合Collection接口、List接口、Set接口、Map接口、Iterator接口
1.对象的存储:①数组(基本数据类型 & 引用数据类型) ②集合(引用数据类型) >数组存储数据的弊端:长度一旦初始化以后,就不可变;真正给数组元素赋值的个数没有现成的方法可用。2.集合框架Collection接口 :方法:①add(Object obj),addAll(Collection coll),size(),clear(),isEmpty(); ...原创 2018-08-09 20:02:12 · 615 阅读 · 0 评论