自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于递归函数中最近出现的一些问题自省

package cn.haiyisoft18;import java.io.*;import java.util.ArrayList;import java.util.List;public class IO_FILEPRACTICE { public static void main(String[] args) { // TODO Auto-generated method...

2018-05-30 01:13:00 497

原创 一个java删除文件夹的小方法

java删除文件夹都是从里向外删除,使用递归的方法。public class IO_FILEdemo09 { public static void main(String[] args) { // TODO Auto-generated method stub // 删除目录演示 File dir = new File("C:\\version1"); DeleteAll(di...

2018-05-14 01:21:08 2529

转载 一篇关于java变量定义的文章

https://www.cnblogs.com/AlanLee/p/6627949.html

2018-01-04 00:26:51 429

原创 在学习泛型中遇到的多态的一个小问题

在学习泛型的过程中,我需要创建person、worker、student 一个父类两个子类,但是在创建过程遇到一些问题,先上代码package cn.haiyisoft.domain;public class PersonForGeneric implements Comparable { private String name; private int age; pub

2017-12-22 00:49:17 327

转载 重写?重载?

Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,下面详细介绍你要了解的区别。Java的多态机制即重写,重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:class Animal{void eat(){ System.out.print("animal eat");}

2017-08-03 01:12:42 353

转载 接口与object的关系

在学习集合的时候,遇到以下的代码Lisi list =new ArrayList();.......syso(list);大家都知道List接口中并没有定义toString()方法,应该是无法多态使用子类中的ArrayList中的toString()方法的,但是结果却是用到了,这是怎么回事呢?参考:java语言规范 9.2 Interface MembersIf an int

2017-08-03 00:56:52 1935

转载 Java内部类总结

Java内部类其实在J2EE编程中使用较少,不过在窗口应用编程中特别常见,主要用来事件的处理。其实,做非GUI编程,内部类完全可以不用。 内部类的声明、访问控制等于外部类有所不同,要灵活使用内部类来编写程序,还是有相当难度的,Java发明了这种难懂的玩意儿,在其他语言中是没有的,但是在Java中,内部类也相当的重要,尤其做GUI开发时候,事件的响应处理全靠内部类了。 内部类所做的功

2017-05-16 01:00:51 319

转载 Java this 关键字用法

构造方法中的this关键字构造方法是一个类的对象在通过new关键字创建时自动调用的,在程序中不能向调用其他方法一样通过方法名(也就是类名)来调用。但如果一个类有多个构造方法,可以在一个构造方法中通过this(paras…)来调用其他的构造方法。 使用this来调用其他构造方法有如下几个约束。 1) 只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用。 2) 不能

2017-05-08 00:40:52 297

转载 线程同步中的锁

原文地址:点我二、同步和锁定1、锁的原理Java中每个对象都有一个内置锁。当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。当程序运行到synchronized同步方法或代码块时该对象锁才起作用。一个对象

2017-01-01 02:41:26 462

原创 关于多线程中synchronized的使用位置

在练习多线程之售票的时候,对于synchronized的使用有些困惑,因为我是用以下代码:public class ThreadDemo5 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub saleTicket_5 st =

2016-12-23 23:02:20 1702

转载 java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

http://www.blogjava.net/fancydeepin/archive/2012/07/08/java_try-catch-finally.html

2016-11-02 01:17:28 411

原创 关于自定义异常中为什么带参构造器需要显示调用父类异常的带参构造器

在听课的时候听到自定义异常时,视频上讲的定义异常的时候如果是带参构造器需要显示调用父类异常的带参构造器,原因是什么呢?首先我们需要看一下Exception和ERROR的父类Throwable的源码:package java.lang;import java.io.*;/*** * Throwable是所有Error和Exceptiong的父类* 注意它有四个构造函数:* Thr

2016-10-28 01:28:09 1865 1

转载 匿名内部类需要注意的事项

简单地说:匿名内部类就是没有名字的内部类。什么情况下需要使用匿名内部类?如果满足下面的一些条件,使用匿名内部类是比较合适的: ·只用到类的一个实例。 ·类在定义后马上用到。 ·类非常小(SUN推荐是在4行代码以下) ·给类命名并不会导致你的代码更容易被理解。 在使用匿名内部类时,要记住以下几个原则: ·匿名内部类不能有构造方法。 ·匿名内部类不能定义任何静态成员、方法和

2016-09-21 00:59:27 429

原创 关于子类和父类中的this的用法

在看毕向东java视频的时候,多态这一章讲到了一段代码:public class Demo { public static void main(String[] args) { Fu f = new Zi(); f.show(); }}class Fu { int num = 1; void show() { System.out.println(this.num)

2016-08-30 23:48:46 13425 4

转载 关于成员变量和局部变量是否都会被默认初始化的问题

成员变量可以不用初始化,其具有默认值;但是局部变量一定需要初始化,否则编译报错。public class Demo { int m; public static void main(String[] args) { Demo demo = new Demo(); System.out.println(demo.m); //输出0 }}

2016-08-04 23:51:42 8028

原创 对于父类的私有属性,子类是从哪里访问到的?

其实也是牵扯到子类继承父类时,父类的private属性在子类中是什么样的问题。根据JAVA官方的定义:A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its

2016-07-17 00:47:26 5656

转载 java 中的 各种变量、代码块执行时机

java 中的变量大致分为 成员变量 和 局部变量 两大类。成员变量:    在类体里面定义的变量称为成员变量;    如果该成员变量有 static 关键字修饰,则该成员变量称为 静态变量 或 类变量;    如果该成员变量没有 static 关键字修饰,则该成员变量被称为 非静态变量 或 实例变量。局部变量:    形参、方法内定义的变量、代码块中定义的变量,都

2016-06-25 01:41:11 906

原创 关于创建一个对象的流程以及代码块和属性位置相关

在听毕向东的面向对象时,其总结了创建对象的过程:1、加载指定的字节码文件进内存。2、通过new在堆内存中开辟空间,分配首地址值。3、对对象属性进行默认初始化。4、调用与之对应的构造函数,构造函数压栈。5、构造函数中执行隐式的语句super()访问父类中的构造函数。6、对属性进行显示初始化。7、调用类中的构造代码块。8、执行构造函数中自定义的初始化代码。9、初始化

2016-06-25 01:33:06 492

转载 小谈Java中的静态块与非静态块

原文地址:点击打开链接java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的。结构如下:static {静态语句代码块}{非静态语句代码块}异同点相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中

2016-06-24 00:04:47 395

转载 java中this语句来调用其他构造方法的规则

大家对java构造方法的理解吗?对于java构造方法一般需要满足以下几条规则:(1)方法名必须与类名保持一致。(2)不要声明返回类型。(3)不能被static, final, synchronized, abstract和native修饰。构造方法不能被子类继承,所以用final和abstract修饰没有任何意义。构造方法用于初始化一个新建对象,所以用static修饰没有意

2016-06-18 23:05:17 5997

转载 Java 虚拟机总结 - JVM 内存区域

原文地址:segmentJava 虚拟机( Java Virtual Machine,缩写为 JVM ):是一种能够运行 Java 程序的抽象计算机。特点:实现 Java 平台无关性,使得编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而由 JVM 执行。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 Java 虚拟机上运行

2016-06-06 21:11:50 336

原创 一个小程序:二分查找法寻找插入点

public class ArrayDemo07 { /** * @param args */ public static void main(String[] args) { // 获取插入点,利用二分查找的变种进行插入点的查找 //min和max一定会在key值的前面以及后面,不可能出现 //min,max都比key大或者小 int[] arr={1,3,8,12

2016-05-27 00:51:55 597

原创 增强for循环对于“二维”数组进行循环的案例

对于“二维”数组进行foreach循环的话可以如下:String name[][] = { { "张三", "李四", "王五" }, { "张六", "李七", "王八" }, { "张九", "李十", "王十一" } }; for (String[] str1 : name) { for (String str2 : str1) { System.out.pri

2016-04-26 01:11:00 3618

转载 关于十六进制和八进制负数的问题

十进制有-9等形式,八进制也有-011的形式,也就是十进制的-9,同样16进制也有-0x12的形式,就是十进制的-18

2016-04-25 23:48:54 4993

转载 Java中可变长参数的使用及注意事项

原文地址:点击打开链接在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");print("hello","lisi");print("hello","张三", "alexia");下面介绍如何定义可变长参数 以及如何使用可变长参数。1. 可变长参数的定义

2016-03-14 00:54:16 432

转载 oracle系统表v$session、v$sql字段说明

oracle系统表v$session、v$sql表的列字段说明‍在本视图中,每一个连接到数据库实例中的 session都拥有一条记录。包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等。V$SESSION中的常用列V$SESSION是基础信息视图,用于找寻用户 SID或 SADDR。不过,它也有一些列会动

2016-02-25 23:31:27 2186

转载 java中continue配合标签进行继续循环

在java中break配合标签可以跳出指定的循环层次,同样continue配合标签可以跳过某些循环进行下一次的循环。例如:public class ContinueDemo { public static void main(String[] args) { for(int i=0;i<9;i++) { if(i!=5) continue; System.o

2016-02-20 23:30:02 5646

转载 关于java中自增、自减运算符与C的不同。

在java中有比C更多的数据类型,所以某些运算符也有一些微小区别:一  自增与自减运算符遵循以下规律: 1. 可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。 2. 在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character

2016-02-05 17:00:44 590

原创 如何在多层循环中跳出循环呢?

C语言里有goto可以进行任意跳转,可是不论是在C还是在JAVA中goto都是不被提倡的,C语言有时候必须用goto来跳出外层循环,但是java中可以使用标号和break搭配进行外层循环跳出。这种标号在for、while、do..while都可以使用。在for中进行使用: outer:for(int i=1;i<5;i++) { inner:for(

2016-01-29 01:59:29 2133

原创 关于SWITCH中CASE的执行顺序。

关于SWITCH中CASE的执行顺序其实是一个挺有意思的小问题,带不带break,或者break放置在哪里都会对最终结果产生影响,其实判断最终结果只要找到入口点和最近的一个break就行,然后入口点和这个最近的break之间的所有语句都会被执行。但是有一种比较特别的情况如下:package zx.package01;public class Switchtest { public st

2016-01-20 00:33:11 5294 1

转载 关于java中位运算的左移、右移、无符号右移

今天学到了java中的位运算,和C语言还是有所不同的:>>:右移运算符,num>>1,相当于num*2;>>>:无符号右移,忽略符号位,空位以0补齐。位运算的一些规则:1.byte、short、char在做移位运算之前,会被自动转换为int类型,然后再进行运算。2.byte、short、int、char类型的数据经过移位运算后结果都为int型。3.long经过移

2015-12-23 00:19:40 8629

原创 一个老话题,short s=s+1的日常

最近又要重新捡起java了,因为没做过开发的it人生是不完整的,so,就从一个万年老梗 short s=s+1为何编译失败开始新的开始吧。calss test{ public static void main(string[] args) { short s=1; s=s+1; s+

2015-12-20 01:07:41 2056 1

转载 C语言移位运算符

位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。  位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。  移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否

2015-11-24 00:16:21 625

转载 关于异或的一些东西和应用

异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。性质1、交换律2、结合律(即(a^b)^c == a^(b^c))3、对于任何数x,都有x^x=0,x^

2015-11-22 23:22:12 1616

原创 指针就算指向了常量也不能修改这个常量

先来看我这个低级的错误代码#include int main(int argc, char *argv[]){ char *ch1,*ch2; int i=0; ch1="you are my father"; ch2="i am your sun"; do { ch1[i]=ch2[i]; i++; }while(ch2[i]!='\0'); ch1[i]='\0'

2015-10-25 01:09:16 1425

原创 一个费力不讨好的选择排序

void choosefun(float array[],int m){    int i,j;    float n;    for(i=0;i    {        for(j=i+1;j        {            if(array[i]>array[j])            {                n=array[i];

2015-09-14 01:22:05 339

转载 深入理解按位异或运算符

参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:   0^0 = 0,       1^0 = 1,       0^1 = 1,       1^1 = 0按位异或的3个特点:(1) 0^0=0,0^1=1  0异或任何数=任何数(2) 1^0=1,1^1=0  1异或任何数-任何数取反(3) 任何数异或自己=把自己置0按位异或的几个

2015-09-14 01:17:50 648

转载 printf中用%d输出float或者double

首先说一个“默认参数提升”的概念:If the expression that denotes the called function has a type that does include a prototype, the arguments are implicitly converted, as if by assignment, to the types of the corresp

2015-08-02 03:12:21 16775

转载 C语言函数参数传递之痛

文章原地址:点击打开链接首先先讲一下表达式中“类型提升”,来自《C专家编程》     整型提升就是char,short(无论unsigned,signed),位段类型,枚举类型都将提升为int类型。前提是int类型能完整容纳原先的数据,否则提升为unsigned int类型。    char c1,c2;    c1=c1+c2;    

2015-08-02 03:09:12 693

原创 关于对char类型数据赋予负值的汇编表现

今天在看谭4,看到char的时候,上面有一句话说:可以把0-127之间的整数赋予一个字符变量,那把一个负数赋值给一个字符变量会怎么样呢?#include#include #include #include #include void main(){ char c; c=-200; printf("c1=%c,c2=%d,c3=%x\n",c,c,c);}

2015-07-19 13:23:11 3914

空空如也

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

TA关注的人

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