- 博客(37)
- 收藏
- 关注
转载 sql练习
没脑子 sql查询练习题 --(1) 查询20号部门的所有员工信息。select * from emp e where e.deptno=20;--(2) 查询奖金(COMM)高于工资(SAL)的员工信息。select * from emp where comm>sal;--(3) 查询奖金高于工资的20%的员工信息。select * from emp where c...
2018-07-02 20:34:20
1508
原创 方法改变成员变量
2.分析如下Java程序的代码所示,则编译运行后的输出结果是( C )。(选择一项) public class Test { int count=9; public void count1(){ count=10; System.out.println("count1="+count); } public void count2(){ System.out.println("count2...
2018-06-26 21:08:11
2638
原创 java小问题
1.char 型变量中能不能存贮一个中文汉字,为什么? 答:char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中 的编号,这是统一的唯一方法),一个char类型占2个字节(16比特),所以放一个中文是没问题的。补充: 使用Unicode意味着字符在JVM内部和外部有不同的表现形式,在JVM内部都是Unicod...
2018-06-03 19:08:34
197
原创 Java中存在内存泄露吗?请简单论述。
答:理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致内存泄露的发生。例如Hibernate的Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(fl...
2018-06-03 18:50:28
385
原创 如何实现对象克隆?
答:有两种方式: 1). 实现Cloneable接口并重写Object类中的clone()方法; 2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下:package com.javadu.cloneTest;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutp...
2018-06-03 18:46:40
3799
原创 static修饰成员方法的作用
static的另一个作用,就是修饰成员方法。相比于修饰成员属性,修饰成员方法对于数据的存储上面并没有多大的变化,因为我们从上面可以看出,方法本来就是存放在类的定义当中的。static修饰成员方法最大的作用,就是可以使用"类名.方法名"的方式操作方法,避免了先要new出对象的繁琐和资源消耗,我们可能会经常在帮助类中看到它的使用:public class PrintHelper { publ...
2018-06-03 18:29:53
2294
转载 java finalize方法总结、GC执行finalize的过程
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的finalize的调用具有不确定性不建议用finalize方法完成“非内存资源”的清理工作,但建议用于:...
2018-06-03 17:14:18
238
转载 关于Java栈与堆的思考(String 与 StringBuffer的本质区别)
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会...
2018-06-03 17:13:20
519
转载 String s = a+b+c+d+e;创建了几个对象的详细分析?
问题1: String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象, 答案是 就创建了一个 String s = "a" + "b" + "c" + "d" + "e"; 赋值符号右边的"a"、"b"、"c&quo
2018-06-03 16:34:27
3369
转载 为什么只有字符数组可以这样输出?
在java中,当我们定义一个字符数组想要输出时,可以直接在输出语句中写上它的应用即可,为什么可以这样呢?首先我们看一下下面的这个例子![java] view plain copypackage cn.edu.ahui; public class TestDemo { public static void main(String[] args){ char[] ...
2018-06-03 16:28:25
1492
原创 字符串和变量相加变量不是字符串不会调用Stringbuffer
int a=22; String str="11"+a;//编译期就在常量池相加,因为a不是字符串 String str2="11"+22;//编译期就在常量池相加 System.out.println(str);
2018-06-02 15:28:53
316
转载 父类调用子类的成员变量
前两天被问到一个程序,觉得挺有意思,拿出来和大家分享一下。程序如下: class Base { private int i = 2; public Base() { this.display(); } public void display() { System.out.println(i); } } c...
2018-05-26 16:55:21
10264
2
转载 Java中的隐藏和覆盖
1、编译时类型和运行时类型 Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型编译时类型:由声明该变量时使用的类型决定运行时类型:由该变量指向的对象类型决定如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。如 Father f = ne...
2018-05-26 14:19:36
664
转载 Java前期(静态)绑定和后期(动态)绑定
程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定.静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。例如:C。针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,static...
2018-05-26 14:16:24
212
转载 [java]final关键字的几种用法
在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们来了解一下final关键字及其用法。final关键字在java中,final的含义在不同的场景下有细微的差别,但总体上来说,它指的是“这是不可变的”。下面,我们来讲final的四种主要用法。1.修饰数据在编写程序时,我们...
2018-05-25 21:03:14
326
转载 [java]static关键字的四种用法
在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们先来了解一下static关键字及其用法。static关键字1.修饰成员变量在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或...
2018-05-25 21:02:45
158
转载 接口中的方法
接口中的方法 |接口Interface1. 接口中的成员变量默认都是public、static、final类型的,必须被显式初始化2. 接口中的方法默认都是public、abstract类型的。3. 接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。4. 接口没有构造方法,不能被实例化,在接口中定义构造方法是非法的。5. 一个接...
2018-05-25 20:58:14
11571
转载 JDK8新特性:接口的静态方法和默认方法
在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。由于这些修饰符都是默认的,所以在JDK8之前,下面的写法都是等价的。[java] view plain copypublic interface JDK8BeforeInterface { public static final int...
2018-05-25 20:57:34
185
转载 JVM常量池
在jvm规范中,每个类型都有自己的常量池。常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型、字段、方法的符号引用。之所以是符号引用而不是像c语言那样,编译时直接指定其他类型,是因为java是动态绑定的,只有在运行时根据某些规则才能确定具体依赖的类型实例,这正是java实现多态的基础。为了对常量池有更具体的认识,下面引用几个例子:1,常量池中对象和堆中的对象...
2018-05-25 20:51:20
2054
转载 Java内存分配之堆、栈和常量池
Java内存分配主要包括以下几个区域:1. 寄存器:我们在程序中无法控制2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中3. 堆:存放用new产生的数据4. 静态域:存放在对象中用static定义的静态成员5. 常量池:存放常量6. 非RAM(随机存取存储器)存储:硬盘等永久存储空间******************************************...
2018-05-25 20:49:52
136
转载 static 静态变量和静态代码块的执行顺序
众所周知 在android中static 修饰的会被称之为 静态常量,静态变量, 静态方法 ,还有就是静态代码块,用static{ // 代码块 非static修饰的方法,变量,常量, 是不能再静态代码块中使用的 } 表示。 static修饰的 是跟着类走的, 而不是跟随对象,这个大家都是知道的。 那么大家是否知道它们之间的运行顺序的关系呢? 今天, 我就给大家简单讲解一下吧。...
2018-05-24 18:33:45
30897
6
原创 name的作用域只在本类中,父类中的getName方法只能调用父类的name先找子类有有没有getName方法没有父类找,父类不能调用子类的成员
Java继承中的转型及其内存分配看书的时候被一段代码能凌乱啦,代码是这样的:package 继承;abstract class People { public String tag = "疯狂Java讲义"; //① public String name = "Parent"; String getName(){ ...
2018-05-23 20:12:57
474
原创 flag的使用注意事项
if(flag=false) 将flag置为false返回falseif(flag==false) 判断flag是否为false
2018-05-15 11:49:16
2086
转载 java中关键字static、final和static final
1.static:可以修饰:属性,方法,代码段,内部类(静态内部类或嵌套内部类) a.修饰变量:做全局变量,所有对象实例共用static修饰的变量,jvm中对此变量仅申请一块空间。 b.修饰方法:静态方法不能被重写,只能被隐藏。子类只能继承父类的静态方法,不能重写父类静态方法,子类隐藏了父类的静态方法。静态方法可以包含静态和非静态方法,非静态方法只能包含非静态方法,不能包含静态方法。 ...
2018-05-12 18:03:52
131
转载 printf()详解之终极无惑
1.printf()简介printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。函数原型:int printf ( const char * format, ... );1返回值: 正确返回输出的字符总数,错误返回负值,与此同时,输入输出流错误标志将被置值,可由指示器ferror来检查输入输出流...
2018-05-12 16:25:11
807
原创 空字符串、NULL、空格串的区别
1、表示区别 string str1 = ""; //空字符串 str1.length() 等于 0 string str2 = null; //NULL string str3 = " "; //空格串 str2.length() 等于 12、内存区别 "" :分配了内存 ,分配了一个空间 null :未分配...
2018-05-12 16:12:43
16880
原创 Java中除零等于什么?
1/0 -1/0 0/0 均产生异常;1.0/0 -1.0/0 0.0/0 分别为Infinity -Infinity NaN1/0.0 -1/0.0 0/0.0 分别为Infinity -Infinity NaN1.0/0.0 -1.0/0.0 0.0/0.0 分别为Infinity -Infinity NaN 可见,当为除零时两个都是整数int时会发生异常,有一...
2018-05-12 15:51:37
3612
转载 [JAVA] float,double大数据不要科学计数方法显示
前言:理论科学计数法:如2E8, 2乘以10的8次方。浮点数(float,double)整数部分达到8位及以上,会以科学计数法显示。整数(int,long)不会显示成科学计数法。实践例子 long l1 = 1234567l; long l2 = 12345678l; long l3 = 123456789l; double f1 =...
2018-05-12 15:48:08
1328
转载 字符串String(一个字符数组,常量,不可变):
1. 创建并初始化字符串: 1). 使用字符串常量直接初始化 String s="hello!"; 2). 使用构造方法创建并初始化 String();//初始化一个对象,表示空字符序列 String(value);//利用已存在的字符串常量创建一个新的对象 String (char[] value);//利用一个字符数组创建一个字符串 String(char[] va...
2018-05-12 08:05:20
1208
转载 关于equals和==的区别
解释一下==号,他比较的是一个对象在内存中的地址值, 比如2个字符串对象 String s1 = new String("str"); String s2 = new String("str"); 如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。 equals的情况比较复杂,它是java.lang.Object类中的一个方法。因为java中所有...
2018-05-12 08:02:05
188
转载 三元运算符和if-else语句:不同之处
三元运算符和if-else语句:不同之处。 a) 三元运算符是必须要有返回值,而if-else语句并不一定有返回值,其执行结果可能是赋值语句或者打印输出语句。 b) java三元表达式有字符强转(双目数值提升)的功能,返回值类型为两个返回值中类型精度更高的的那个类型 1) 在java中常见数据类型其范围从小到大(精度由低到高):byte<short<char<int&l...
2018-05-12 08:01:07
3408
转载 8. &和&&的区别?
答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不...
2018-05-11 19:59:30
2098
转载 java的%d和%f 是什么意思
Java中,%d和%f分别用来表示输出时,替换整型输出和浮点型输出的占位符。如:int a=28;float b = 13.0f;System.out.printf("整数是:%d%n,小数是:%f",a,b);输出结果是:整数是:28 小数是:13.0;这里的%n是换行的格式字符串,只能用在print输出语句中, 而\n是回车字符, 可以用在所有的字符串中...
2018-05-11 19:57:32
3765
转载 Java中,&amp;&amp;与&amp;,||与|的区别
在java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或)。&&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断。看下面的程序:[java] view plain copypackage demo; public class TestUnsignedByt...
2018-05-11 19:49:52
8403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人