Java-基础知识
文章平均质量分 72
Java-基础知识
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Java中的移位运算符
当long类型进行左移操作时,long类型在二进制中的体现是64位的,因此求余操作的基数也变成了64,也就是说左移64位相当于没有移位,左移72位相当于左移8位(72%64=8),写一段代码来测试一下。无符号右移运算符>>>和右移运算符>>是一样的,只不过右移时左边是补上符号位,而无符号右移运算符是补上0,也就是说,对于正数移位来说等同于:>>,负数通过此移位运算符能移位成正数。左移1位后换算成十进制的值为:1466367340,刚好是733183670的两倍, 有些人在乘2操作时喜欢用左移运算符来替代。转载 2023-05-16 16:48:15 · 741 阅读 · 0 评论 -
基于Java Instrument的Agent实现
0 介绍使用 Instrumentation,使得开发者可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。有了这样的功能,开发者就可以实现更为灵活的运行时虚拟机监控和 Java 类操作了,这样的特性实际上提供了 一种虚拟机级别支持的 AOP 实现方式,使得开发者无需对 JDK 做任何升级和改动,就可以实现某些 AOP 的功能了。利用 java.lang.instrument 做静态 Instrumentation 是 Java转载 2021-02-06 17:05:33 · 651 阅读 · 0 评论 -
原始 java 载入数据源 JNDI及直连
Java:package com.wonders.ips.common;import java.sql.*;import java.util.*;import javax.sql.*;import javax.naming.*;import com.wonders.ips.sysadmin.ConfigInfo;import com.wonders.kwoa.common.Con原创 2013-11-13 13:04:50 · 2225 阅读 · 0 评论 -
通过Java反射调用方法
通过Java反射调用方法 这是个测试用的例子,通过反射调用对象的方法。TestRef.javaimport java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException;/** */ public class TestRef { public static转载 2014-04-16 14:32:00 · 2028 阅读 · 0 评论 -
Thread.currentThread().getContextClassLoader().getResourceAsStream
Java路径 Java中使用的路径,分为两种:绝对路径和相对路径。具体而言,又分为四种: 一、URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b URL是URI的特例。URL的前缀/协议,必须是Java熟悉的。URL可以打开资源,而URI则不行。 URL和URI对象可转载 2014-04-02 06:49:47 · 65434 阅读 · 3 评论 -
Java 利用 HttpURLConnection 读取页面 返回字节流(生成静态页面)
//保存为文件import java.io.*;public class GenerateIndexPage { protected static String defaultToFile = "frame/main_Null.html"; protected static String defaultFromFile = "http://localhost:8080/stfb/fram原创 2012-10-29 16:18:38 · 12377 阅读 · 0 评论 -
Java: JNI完全手册
JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接转载 2012-10-30 20:39:14 · 1612 阅读 · 0 评论 -
Java下载文件时处理中文 使用URLEncoder编码后 空格变+号的问题
解决转换空格 String fileName = StringUtils.trim(file.getName()); String formatFileName = encodingFileName(name);//在后面定义方法encodingFileName(String fileName); response.setHeader("Content-Disposition",转载 2012-10-24 14:33:48 · 7829 阅读 · 1 评论 -
java 操作 excel文件 jxl 与 poi 比较
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Iterator;import jxl.Sheet;import jxl.Workbook;import org.apache.poi.hssf.usermodel.HSSFCel转载 2012-10-27 11:12:46 · 1586 阅读 · 0 评论 -
Java利用HttpURLConnection发送post请求
URL url = null; HttpURLConnection http = null; try { url = new URL(urls); http = (HttpURLConnection) url.openConnection(); http.setDoInput(true); http.setDoOutput(true); htt原创 2012-10-29 16:24:03 · 17024 阅读 · 1 评论 -
Java判断素数
素数:除了1以外,只能被1和自己整除的数;int i; long N=0; System.out.println("输入一个数字:"); try { Scanner input=new Scanner(System.in); N=input.nextLong(); }catch(Exception e){} for(i=2;i<N;i++) {原创 2012-11-12 09:37:27 · 1220 阅读 · 0 评论 -
java生成随机数
一、利用Math.Random()方法来生成随机数。在Java语言中生成随 机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机 数。不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的double型随机数。虽然其随机数产生的范围比较小,不能够满足日常的需求。如 日常工作中可能需要产生整转载 2012-11-12 09:31:43 · 1539 阅读 · 0 评论 -
JAVA基础--JAVA中的反射机制详解
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一转载 2012-11-08 21:28:41 · 1370 阅读 · 1 评论 -
关于某些网站的图片盗链功能,相关http 请求的解决方法
其实 关键就是 header中 的 Referer 属性,可以通过firebug 查看头信息 并获得Referer,但有些情况下可能不能获取,就只能通过抓包的方法来获得了。import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import j原创 2012-11-23 14:49:35 · 1762 阅读 · 0 评论 -
Java基础:IO 流中的 flush
输出流呢,类似于一根管道,输出的时候先放到管道里,然后 管道满了存到介质上(硬盘或其他地方),当我们输出完后管道里面可能还有剩余,就用flush()清空管道即全部存到介质上。好象java默认的缓冲区是 8kb?(我也忘了),就是说只有每填满8kb才会提交一次,当少于这个值时就不会提交,所以最后为防止有未提交数据就flush()一下,强行提交生于 数据 也就是说,一般输出流关闭之前要转载 2012-11-20 22:35:19 · 2119 阅读 · 0 评论 -
Java中接口(interface)和匿名类
[java] view plaincopy//接口和匿名类之类. interface PCI { void start(); void stop(); } class wangka implements PCI//网卡,声卡都是pci接口. { public void start()转载 2012-11-19 15:05:49 · 1492 阅读 · 1 评论 -
ScheduledExecutorService执行周期任务
鉴于 Timer 的上述缺陷,Java 5 推出了基于线程池设计的 ScheduledExecutor。其设计思想是,每一个被调度的任务都会由线程池中一个线程去执行,因此任务是并发执行的,相互之间不会受到干扰。需要注意的是,只有当任务的执行时间到来时,ScheduedExecutor 才会真正启动一个线程,其余时间 ScheduledExecutor 都是在轮询任务的状态转载 2012-11-19 10:30:30 · 2183 阅读 · 0 评论 -
Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
序言 关于类的static成员变量初始化、static初始化块、实例的普通成员变量初始化、实例的普通初始化块以及构造函数的执行顺序,我一直不是十分明确地知道,今天专门花了几个小时的时间参考网上资料设计出了比较明了的测试代码,有代码有结果有真相。总体而言,static部分执行早于普通初始化块早于构造函数,如果一个类继承了某个父类,则父类的static部分最先执行。 正文转载 2014-05-09 09:29:13 · 11246 阅读 · 2 评论 -
Java各访问控制符的访问范围
在同一个类中,可以访问一下修饰符在变量:public变量protected变量friendly变量private变量在同一个包中,可以访问以下修饰符的变量:public变量protected变量friendly变量在不同的包中的子类中,可以访问以下修饰符在变量:public变量protected变量在不同的包的非子类中,可以访原创 2012-10-27 20:28:47 · 1727 阅读 · 0 评论 -
java中判断字符是否是数字的几种方法
java判断数字的几种方法,整理如下,个人比较推荐用正则表达式判断。其它的方法,实现不是很美观,并且如果判断是不是小数比较麻烦 1.直接用jdk自带的判断字符是不是数字的方法做循环public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Charact转载 2012-11-13 16:23:13 · 5107 阅读 · 0 评论 -
Java 信号量 Semaphore 介绍
Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 Sem转载 2012-11-19 15:43:06 · 1192 阅读 · 0 评论 -
ScheduledExecutorService中scheduleAtFixedRate方法的同步
因为scheduleAtFixedRate是指定频率执行方法,若方法的执行时间大于指定的间隔时间,将会发生,同一时间点 ,执行方法N 次。所以需要使用同步方法才确保并发操作的安全性。import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import jav原创 2012-11-19 11:02:39 · 14297 阅读 · 1 评论 -
java UUID生成唯一标识符
java.util.UUID.randomUUID().toString(); 目前只知道可以生成一个数字和字符混合的字符串,害得我只能将原来的switch全都改成if-else。 GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以转载 2014-04-08 12:34:14 · 4635 阅读 · 0 评论 -
java中利用反射机制实现调用给定为字符串的方法名
1、被测试类package demo.reflect;/** * 被测试类 * @author wangyanjun * */public class Quizzee { public void testMethod(String arg1,Integer arg2){ System.out.println("测试结果:反射方法的调用"); Sy转载 2012-10-27 10:55:54 · 2977 阅读 · 0 评论 -
java获取本地系统变量 Properties 及 RunTime
Properties props = System.getProperties(); Runtime runtime = Runtime.getRuntime(); long freeMemoery = runtime.freeMemory(); long totalMemory = runtime.totalMemory(); long usedMemory = totalMem转载 2013-10-23 12:59:34 · 3252 阅读 · 0 评论 -
java发送邮件
需要jar包:mail.jarSendMail.java/** * */package com.wonders.volunteer;/** * 类简要描述信息。(必需) 类详细描述信息。(可选,可分多行描述) * * @author zhoushun * @version 1.0 * @since 1.0 */import java.util.Da原创 2013-10-24 19:26:24 · 2067 阅读 · 1 评论 -
getResource中文或有空格路径处理
今天遇到文件路径中有中文,读取文件就找不到,查了下得到以下解决方法,记录下来。在使用类似这样: Java代码 this.getClass().getClassLoader().getResource("").getPath() 来获取文件路径时,里面的路径空格会被“%20”代替,这时候如果你用这个获取到的包含“%20”转载 2012-12-26 11:27:18 · 1907 阅读 · 0 评论 -
深入分析 Java 中的中文编码问题
转载地址:http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些转载 2012-12-13 16:15:07 · 1344 阅读 · 0 评论 -
Java 使用 Socket 池 读写 示例
package com.wondersgroup.stjt.mail.util;import java.net.*;import java.io.IOException;/*** */public class SocketAdapter extends Socket{ /** * 连接状态 */ private boolean status=true; /原创 2014-04-09 11:42:46 · 22194 阅读 · 3 评论 -
java多线程之 wait(),notify(),notifyAll()[迁]
wait(),notify(),notifyAll()不属于Thread类,而是属于Object基础类,也就是说每个对像都有wait(),notify(),notifyAll()的功能.因为都个对像都有锁,锁是每个对像的基础,当然操作锁的方法也是最基础了。 wait导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或被其他线程中断。wai转载 2012-12-17 11:11:45 · 1233 阅读 · 0 评论 -
关于java中split的使用
今天用split这个函数时碰到了问题,我的String是 a.b 我用 split("."),居然返回的数组长度是0,后来网上查了才知道 split参数是 正则表达式,以前一直以为是字符串,而“.”在正则表达式中有特殊含义,代表任何字符串。转载一篇文章:http://shukuiyan.iteye.com/blog/1058672 之前在http://shukuiyan.i转载 2012-12-06 15:07:25 · 1420 阅读 · 0 评论 -
Java本地应用使用spring及hibernate
ApplicationContext.xml<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <bean id="propertyConfigurer" class="org.springframe原创 2012-11-25 20:56:02 · 1703 阅读 · 0 评论 -
ResourceBundle.getBundle("myresource")的意义
使用ResourceBundle访问本地资源 在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class,.config保存此类信息并不适合,这时我们需要ResourceBundle。 通过ResourceBundle,我们需要访问位于/WEB-INF/classes目录下的一个后缀名为properties的文本类型文转载 2012-12-07 14:25:49 · 1576 阅读 · 0 评论 -
通过PropertyDescriptor反映射调用set和get方法
package com.zhoushun;import java.lang.reflect.Method;import java.lang.reflect.Field;import java.beans.PropertyDescriptor;public class PropertyUtil { @SuppressWarnings("unchecked") public static转载 2012-12-27 15:20:55 · 31816 阅读 · 1 评论 -
java join的用法
join的用法,先看几个例子在说。 程序1:public class ThreadTest implements Runnable { public static int a = 0; public synchronized void inc() { a++; } public void run() { for (int转载 2014-04-09 11:27:56 · 12638 阅读 · 0 评论 -
java反射--如何改变private中的变量及方法
class DemoTest{ private String name="123"; public getName(){ system.out.println("public getName " + name); return name; } private getName2(){ syst转载 2014-04-09 18:44:23 · 10573 阅读 · 0 评论 -
JAVA list如何remove
在java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但是对java中list进行删除元素,remove list中的元素就不怎么熟悉了吧,可以说很陌生,是实际操作中也很容易出错,先看看下面这个java中如何remove list 中的元素吧.public class test {public static void main(转载 2013-02-06 23:08:55 · 1542 阅读 · 0 评论 -
JAVA实现快速排序
快速排序的基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。 先看一下这幅图:把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交换。这样循环往复转载 2013-04-08 11:56:48 · 2774 阅读 · 0 评论 -
Java List 复制
开发时, 很多时候我们需要实现 List 的复制, 如果使用For循环复制, 需要写好几行代码, 也不能复用 . 其实我们可以借助泛型写一个通用的方法, 以后都可使用这个方法实现List 的复制 . Java代码 /** * 复制集合 * @param * @param source * @param destina转载 2013-03-28 11:06:12 · 1696 阅读 · 0 评论 -
windows系统下,Java访问共享文件夹的方法
http://hi.baidu.com/iduany/item/911685dc6f978911e1f46f72如何通过windows服务访问网络资源(通过jcifs实现java访问网络共享文件)问题:1,windows本地服务localsystem帐户默认对本地操作系统具有最高操作权限,但是却不能对网络资源访问。 2,经过测试发现用windows服务不转载 2013-07-09 22:00:12 · 2038 阅读 · 0 评论