
WEB后台@JavaSE
文章平均质量分 56
schy_hqh
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(IO)文件File
File文件对象常用方法 package com.gc.file;import java.io.File;import java.io.FileFilter;import java.io.FilenameFilter;import java.io.IOException;public class FileDemo { public static void ...原创 2013-11-04 00:35:16 · 119 阅读 · 0 评论 -
(基础)深入理解java的方法
逻辑+数据=功能 方法/函数:处理数据的逻辑,一段代码。核心在于处理数据的逻辑! 数据分类与存放的位置:局部变量(方法内部定义的变量,包括形参),存放在栈内存中;成员变量(类中定义的变量),存放在堆内存中对应对象的区域中;类变量(类中被static修饰的变量),存放在方法区的静态区中; 方法的功能体现,正是一段逻辑与若干的数据结合在一起,通过各种判断,计算得...原创 2013-09-30 00:06:18 · 115 阅读 · 0 评论 -
(基础)java中的主函数
Java中的主函数1.由JVM调用;JVM通过类名直接调用主函数(静态方法)2.主函数的形参是一个字符串数组: String[] args3.运行主函数时,如果没有向其传递参数,JVM会自动创建一个空的字符串数组String[] args = new String[] {}; 或者String[] args = { }; javac Demo.java 启动编...原创 2013-09-29 22:47:51 · 252 阅读 · 0 评论 -
(基础)java的构造代码块与静态代码块,局部代码块
构造代码块、静态代码块、局部代码块 构造代码块作用:可以为所有对象进行同样的初始化(初始化可以代表执行一个方法)每次调用构造函数,都会执行一次构造代码块的调用时机:子类先super()调用父类构造函数,再对成员变量进行显示初始化,然后才调用构造代码块,最后通过构造函数的入参进行初始化! 构造代码块与构造函数功能上的区别:构造代码块(通用代码块,负...原创 2013-09-29 22:36:56 · 98 阅读 · 0 评论 -
(基础)Properties文件的读取
Properties文件的读取 Maven项目,其中src/main/resources资源目录下,有一个properties文件redis.propertitesip=10.0.60.165port=6379 第一种方式 通过获取到的URL转换为文件的绝对路径 public static void getValue_Reader() { /...原创 2013-09-29 16:41:25 · 114 阅读 · 0 评论 -
(基础)java中的静态变量与静态函数Static
静态static静态出现最大的原因:节约内存,只存一份,由对象共享这个属性。 静态的作用是什么?场景:当每个对象都有一个相同的属性,如country="China",那么每个对象所在的堆内存中都会为其分配空间来保存这个属性值country="Chian"。既然每个对象的country属性值都是一样的,能否只用一个存储空间就行了呢?这样节约堆内存空间。答案是可以...原创 2013-09-28 23:39:21 · 296 阅读 · 0 评论 -
(基础)java中对象的创建过程
Java面向对象,对象是怎么创建出来的?在内存中又是怎么个布局呢?一个对象的创建过程: public class Person { //成员变量---在堆内存分配空间,构造函数被调用的时候,对其进行初始化 private int age; //默认构造函数,如果没有重载其它构造函数,Jave编译器会自动加入一个无参的构造函数,因为要确保至少有一个构造函数存在...原创 2013-09-28 22:29:40 · 132 阅读 · 0 评论 -
(基础)Java中存储数据之数组,排序,查询,进制等
其实编写程序就是把数据拿在手中玩儿,对不? Java用来干嘛?编写程序!程序又拿来干嘛?处理现实中的问题?什么问题?一系列复杂的逻辑,运算等!其实,程序的功能就是为现实生活中遇到的问题进行服务。为企业进行服务,处理数据,一切都是以数据为中心开展的活动!数据才是核心!!!既然数据如此重要,程序中如何处理各种数据呢?-------使用容器处理数据时使用容器能够有效的...原创 2013-09-27 22:44:57 · 188 阅读 · 0 评论 -
(基础)java中的数组定义
数组定义方式 数组是定长的 指定长度,不明确具体值动态初始化,具有默认值,在使用时再动态指定值元素类型[] 数组名 = new 元素类型[元素个数/数组长度] 指定每个角标位上的具体值静态初始化元素类型[] 数组名 = new 元素类型[ ]{1,2,3...} --->new 会在堆中开辟空间元素类型[] 数组名 = {1,2,3......原创 2013-09-26 22:19:30 · 125 阅读 · 0 评论 -
(基础)如何使用ThreadLocal
ThreadLocal的作用:使同一个线程共享一个实例,不同线程使用各自的实例,互不影响 ThreadLocal比较正宗的应用解释:每个线程都将拥有一份属于自己的变量,只要Thread没结束,随时都能取出其内部的ThreadLocalMap,然后结合ThreadLocal自身,就可以拿到Map中存放的变量。为什么要这样?解决了方法链中传递同一个参数的麻烦! 应用场景...原创 2013-09-26 13:06:14 · 232 阅读 · 0 评论 -
(基础)java中的数据类型
java中的数据类型 基本数据类型数值型整数类型(将根据类型分配不同的内存空间,开发中一般都使用int直接定义整型) byte(1个字节) -128 至 127 short(2个字节) -32768 至 32767int(4个字节) -2147483648 至 2147483647 -->21亿半 1<<31)-1l...原创 2013-09-26 00:49:20 · 120 阅读 · 0 评论 -
(基础)java内存加载过程,内存区域的划分
一个java程序从源程序到运行,都经历了哪些内存加载过程呢? 1.javac命令启动编译器,由编译器将java源文件编译为字节码文件,该字节码文件放在硬盘上 2.java命令启动JVM,由虚拟机加载指定的类到内存(JVM在电脑上申请到的一部分内存空间)中JVM将取寻找该类中的main(),从该入口开始运行程序,如果没有,抛NoSuchMethodError:main...原创 2013-09-25 22:25:56 · 270 阅读 · 0 评论 -
(基础)Java中函数
函数的目的对功能代码的封装,实现功能的复用 将功能封装成函数每个函数/方法,有其特定的功能,定义函数的时候就应该明确该函数要实现一个什么操作定义函数应该见名之意,增强可读性 定义函数,两个明确是否需要参数,需要哪些类型的参数是否有返回值,返回值类型为何 函数的分类返回值:有返回值的函数 return 1;没有返回值的函数 return...原创 2013-09-25 21:46:35 · 131 阅读 · 0 评论 -
(基础)java中的转义符号、99Table
widows系统中的回车符实际是由2个符号组成:\r\n linux系统中的回车符则是: \n \r 按下回车键\n 回车\t 制表符(以表格的形式进行列的对齐,代表若干个空格,会自动根据上一行的数据来调整空格数)\b 退格 backspace =======================================================...原创 2013-09-25 20:38:40 · 476 阅读 · 0 评论 -
(基础)局部代码块的作用
电脑有2G内存,实际JVM申请到的内存可能只有256M。不是将内存都给JVM使用!加载到内存中的字节码文件,变量等都是放在JVM管理的内存中的,一定要明白! 程序中经常定义各种变量,如果只使用一次,后面都不再使用,那么可以将其定义到局部代码块中 原理:变量的生命周期,离开{ }之后便结束! 目的:在局部代码块中定义并使用该变量,使用完成后,便释放该变量所在的内存...原创 2013-09-24 23:51:50 · 732 阅读 · 0 评论 -
(基础)java中的位运算
位运算效率最高! 异或 ^小应用:数据加密解密一个数异或另一个数两次,则还原A^B^B = AA^B --->加密 C^B = A --->解密 左移 <<左移n位等效于 乘以2的n次幂 , 3<<2 = 3*2*2 右移 >>右移一位等效于 除以2, 8>>2 = 8/2/2被移...原创 2013-09-24 22:42:11 · 175 阅读 · 0 评论 -
(基础)Java程序是怎么运行起来的
首先,下载JDK配置好环境变量 第二步,编写java源文件 第三步,使用javac将源文件编译为字节码文件.classjavac即启动编译器,将调用JDK中一整套工具将源文件转换为字节码文件首先进行语法检查,都没问题了,就转换为字节码文件 第四不,使用java命令运行类文件(将编译后的二进制文件交给JVM去运行) java即启动JVM,将指定的类加载到内存中...原创 2013-09-24 21:07:11 · 207 阅读 · 0 评论 -
(基础)java中的final修饰符
final修饰符final修饰常量开发中使用final较多的地方---用来修饰常量当程序中使用到的数据是固定不变的,请使用final对其进行修饰!常量名使用大写,多个单词间使用下划线分割 //全局常量 public static final double PI = 3.1415926; //局部常量 final int TIMES = 10;...原创 2013-10-05 19:15:03 · 105 阅读 · 0 评论 -
(基础)java中的抽象类,抽象方法
类中只要有抽象方法,该类必须也是抽象的,也必须使用abstract修饰类抽象类不能实例化,子类必须全部重写父类中的抽象方法才能创建对象 抽象类的构造方法:可以对子类对象进行初始化,或定义一组固定的方法调用逻辑;抽象类中可以没有抽象方法,定义抽象的目的:不让类创建对象(该类中某些方法体为空),创建对象无意义;抽象关键字不能与private,final,static共存; ...原创 2013-10-05 20:17:39 · 149 阅读 · 0 评论 -
(基础)java中的接口interface
接口Interface 接口定义的是一系列行为;接口真正的应用要落实到多态的应用上,才能达到提高扩展性的目的! 接口的存在意义:接口侧重于对功能的描述,是一种全局性的功能声明,所以,方法都是abstract的;接口不负责功能的具体实现,交由子类去做;接口侧重于为子类提供功能的扩展; 接口的一些特点:接口中的成员都是public的,对外都是...原创 2013-10-05 21:05:51 · 208 阅读 · 0 评论 -
(多线程)开启多线程的2种方式
多线程多个任务相互之间没有先后顺序,为了提高效率,开启多个线程来完成这些任务! 好处与弊端:好处:提高任务执行效率,如多线程卖票---设计安全问题,需要对资源加锁;可以让程序"同时"执行不同任务,如杀毒,清理垃圾;弊端:线程开启过多,每个线程获得CPU执行权的频率变低,导致程序运行缓慢; 所以,在适当情况下,合理使用多线程才是正确的! 应用...原创 2013-11-04 00:34:46 · 1370 阅读 · 0 评论 -
(集合)Collections工具类
Collections集合工具类,提供操作集合的常用方法 public static void main(String[] args) { //初始化List集合中的元素个数 List<Double> list = Arrays.asList(new Double[20]); //使用同一个值填充集合 Collect...原创 2013-11-04 00:34:29 · 110 阅读 · 0 评论 -
(集合)List集合与Array的互转
Array数组转换为List集合 目的:使用List集合中提供的众多方法,便于操作注意:数组转为List集合,该List集合不能增删元素,只能查询与修改public static void main(String[] args) { Double[] arr = new Double[10]; Arrays.fill(arr, 0.0); List<...原创 2013-11-04 00:34:15 · 448 阅读 · 0 评论 -
(基础)java中的可变参数
实际上是为了简化数组的定义 参数类型与个数不确定时,使用可变参数进行传递 import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class Test { public static void main(String[] args) { ...原创 2013-11-04 00:34:00 · 122 阅读 · 0 评论 -
(集合)Map集合
Map<key,value> HashMap 底层基于哈希表,key需要根据hashCode()和equals()来确保唯一性TreeMap 底层基于二叉树,key需要具备比较性,实现Comparable 或者 Comparator接口LinkedHashMap 底层基于链表和哈希表,能够实现存入与取出key的顺序一致 遍历Map的几...原创 2013-11-03 23:16:46 · 91 阅读 · 0 评论 -
(集合)java中的哈希表,HashSet,TreeSet
哈希表是一种数据结构,能够快速定位已存储的数据的地址: 1.通过hashCode()计算哈希码,通过该哈希码定位到内存地址。hash码的计算通常基于对象的某些特有属性进行计算; 2.如果地址不同,则直接存入; 3.如果地址相同,则调用该对象的equals()比较内容;如果内容相同,则丢弃,不同,则顺延一个空间,存入。 HashSet HashMap...原创 2013-11-03 15:37:19 · 150 阅读 · 0 评论 -
(集合)LInkedList---队列与栈
LinkedList提供了addFirst(),addLast(),removeFirst()方法操作集合中的元素基于这些功能,就可以实现队列与栈的数据结构。 队列---先进先出FIFO import java.util.Collection;import java.util.LinkedList;public class Queue<E&...原创 2013-11-03 13:36:47 · 127 阅读 · 0 评论 -
(基础)java中的String
String字符串1.字符串不可变,JVM维护一个字符串常量池/缓冲区。每次创建字符串,先到字符串常量池找,有则直接使用,没有则新创建该字符串,即字符串具有共享特性 2.String str = new String("abc"); 创建2个对象:"abc"为一个对象,new 又在堆内存中开辟一个对象空间 3.可变字符串,StringBuffer,StringBui...原创 2013-11-03 09:53:14 · 161 阅读 · 0 评论 -
(基础)java中的泛型
泛型的定义:<T> 泛型的作用:1.限定具体类型,确保类型一致,避免类型转换异常2.不指定具体类型,提高功能的复用性 泛型---定义在类上 public class PersonComparator implements Comparator<Person> { @Override public in...原创 2013-11-02 22:13:08 · 90 阅读 · 0 评论 -
(基础)java中的jar命令
jar 命令java语言中提供的对文件进行压缩打包的一种功能好处:将若干类文件统一归档到一个文件中,便于使用。 将class文件归档为jar包,然后指定到classpath中,该jar包中的类就能被使用如,到apache网站下载jar包,然后引入到classpath中,即能使用。 创建自己的jar文件:对src目录下的java文件进行打包:E:\projec...原创 2013-11-02 15:32:29 · 143 阅读 · 0 评论 -
(基础)java中的equals与hashcode
hashCode()用于计算该对象的哈希值,当以哈希表为底层数据结构存储数据时,就需要用到哈希值,如HashSet,HashMap等集合容器。 hashCode() 与 equals() 为什么要一起重写呢?通常,是基于这样的考虑:如果该对象使用哈希表的进行存储,那么需要通过hashCode()计算哈希码,得到对象的地址,当地址相同时,就需要进一步调用该对象的equals()来比...原创 2013-11-02 13:24:01 · 98 阅读 · 0 评论 -
(基础)java中的反射
反射---最大的应用:反射配置文件中的类路径,动态创建对象,增强扩展性,灵活性反射:一般被反射的类,都需要一个默认的构造函数,即无参构造函数不要被覆盖了! 反射构造函数反射类的字段反射类的方法 package com.gc.reflect;public class Person { private String name; priva...原创 2013-10-27 01:22:36 · 96 阅读 · 0 评论 -
(基础)java中的内部类
内部类/嵌套类,多用于类的设计上。分析事物A时,发现事物A的内部还存在其他事物X,而且事物X又在使用事物A中的内容,此时,Java提供了内部类设计来实现这种需求!!! 访问特点:内部类作为外部类的一个成员,可以直接访问外部类的中的成员,包括私有成员;而外部内要想访问内部类的成员,必须通过创建内部类的对象,才能访问; 内部类出现的原因两个类之间的关闭特别紧密...原创 2013-10-06 11:13:17 · 109 阅读 · 0 评论 -
(基础)java中对象的创建过程
Java中创建一个对象,要经历哪些过程?以子类,父类为例,当创建子类对象时,将会发生什么? public class Parent { Parent() { //子类构造函数调用父类构造函数,导致父类构造函数中的this指向子类对象 this.show(); System.out.println("Parent\t"+this); } void ...原创 2013-10-06 01:57:10 · 295 阅读 · 0 评论 -
(基础)java中的多态
多态性使得Java语言有很强的灵活性很多设计模式都是基于多态的特点发展出来的 多态父类(抽象的)引用指向子类(具体的)对象Animal a = new Person(); 编译时,编译器检查左边(Animal a)a.getAge(); //编译通过,Animal中有getAge()a.speakLanguage(); //编译失败,Animal中没...原创 2013-10-05 23:45:13 · 231 阅读 · 0 评论 -
(基础)Java环境变量Path/classpath
在Windows中,为了能够在任意目录下都能执行java命令,需要将java安装目录设置到系统的环境变量中 Path中存放的都是系统中的应用程序所在的目录 在CMD窗口中,执行java/其它命令:首先在当前目录下寻找,如果没有,则到Path环境变量中继续查找,继而实现在任意目录下都能运行命令 为java配置Path环境变量将java安装目录添加到Path中,以分...原创 2013-09-24 20:19:31 · 193 阅读 · 0 评论 -
(基础)JRE与JDK
JRE提供java程序运行所需要的环境JVM + Java library (虚拟机和基础类库的支持,java程序就能运行)JDK提供开发java程序所需要的工具包(Java程序员在JDK上进行程序开发)JRE+Tools(JDK包含JRE,并提供java程序开发工具包) 安装JRE还是JDK根据需求而定,如果系统中要进行java程序开发,则安装JDK如果只...原创 2013-09-21 23:33:17 · 106 阅读 · 0 评论 -
(基础)java为什么可以跨平台
操作系统分很多种,如Windows,Linux,Mac等java号称能一处编译处处运行,这是为什么?---因为有虚拟机JVM在中间作为桥梁! java语言本身不具备跨平台型,任何系统都不能运行它针对不同系统,需要开发不同的虚拟机,这样虚拟机在对应的系统上才能运行不同系统下的虚拟机对java的解析都没有问题这样,对外而言,java就跨平台(跨操作系统)运行了! ...原创 2013-09-08 22:35:20 · 280 阅读 · 0 评论 -
(多线程)多线程的几种状态
线程从被创建到结束,可能经历的几种状态原创 2013-11-13 21:15:05 · 147 阅读 · 0 评论 -
(IO)带缓冲区的字符读写BufferedReader,BufferedWriter
BufferedReader & BufferedWriter 关键,效率是如何提高的---缓冲数据:通过BufferedReader的read()读取数据,实际上已经是对内存中缓冲区的数据进行读取,而不是每次去磁盘上读取1个字符了(java已经事先将一部分数据缓冲到了数组中)通过BufferedWriter的write()写数据,实际上是将数据写到内存中的缓冲区...原创 2013-11-13 21:14:53 · 224 阅读 · 0 评论