JAVA学习笔记
文章平均质量分 70
木大白易
我用双手成就你的梦想!
展开
-
Android JNI浅析、Java和Native通信对象的传值和回调
JNI是一个本地编程接口,它允许运行在Java虚拟机的Java代码与用其他语言(如C,C++和汇编)编写的库交互。原创 2023-03-08 16:21:36 · 1669 阅读 · 1 评论 -
JNI内存方面说明以及相关类型手动释放内存
它的生命期是在Native Method的执行期开始创建(从Java代码切换到Native代码环境时,或者在Native Method执行时调用JNI函数时),在Native Method执行完毕切换回Java代码时,所有Local Reference被删除(GC会回收其内存),生命期结束(调用。注意Local Reference的生命周期,如果在Native中需要长时间持有一个Java对象,就不能使用将jobject存储在Native,否则在下次使用的时候,即使同一个线程调用,也将会无法使用。转载 2022-09-19 20:56:57 · 1093 阅读 · 0 评论 -
NumberFormat数字格式化
将float或double浮点数转为百分数NumberFormat fmt = NumberFormat.getPercentInstance();fmt.setMaximumFractionDigits(2);//最多两位百分小数,如46.23%fmt.format(xx);将浮点数小数为0的格式为整数,不为0保留小数//这里小数为0的格式为整数,不为0的保留小数NumberFormat format = NumberFormat.getInstance();format.format(x原创 2021-02-02 18:06:05 · 851 阅读 · 0 评论 -
深入理解JVM内幕
前言我不认为为了使用好Java必须去了解Java底层的实现。许多没有深入理解JVM的开发者也开发出了很多非常好的应用和类库。不过,如果你更加理解JVM的话,你就会更加理解Java!内容看了一篇博客,是译文,讲的比较深刻透彻!值得一看! http://blog.csdn.net/zhoudaxia/article/details/26454421转载 2016-07-04 17:30:21 · 560 阅读 · 0 评论 -
HashMap排序
前言我们都知道HashMap在遍历的时候,是无序的,特别是不能保证该顺序恒久不变。但是我们有的时候,会要求它按照一定的顺序来输出,这时候就需要我们对HashMap进行排序处理。方法Map<String,String> map=new HashMap<String,String>(); map.put("key1", "bb"); map.put("key0原创 2016-09-29 14:11:25 · 1552 阅读 · 0 评论 -
JSON解析、JAVA常用的工具类、JAVA集合框架、JAVA泛型、枚举
JSON简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率原创 2015-07-25 17:19:11 · 5028 阅读 · 1 评论 -
递归算法、File类、输入输出流、XML解析
递归算法定义递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。 一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).简单代码示例创建Calculate类//计算1+...+1000的值,不使用循环语句public class Calculate { private int i = 1; public int原创 2015-07-23 20:43:51 · 1011 阅读 · 0 评论 -
数组、字符串
数组数组的声明一维数组先声明,再用new进行内存分配 数组元素类型 数组名字[ ]; 数组元素类型[ ] 数组名字; 声明的同时为数组分配空间 数组元素类型 数组名 = new 数组元素类型[数组元素的个数]二维数组先声明,再用new进行内存分配 数组元素类型 数组名字[ ][ ]; 数组元素类型[ ][ ] 数组名字; 数组元素类型[ ] 数组名字[ ]; a=new原创 2015-07-17 21:12:03 · 601 阅读 · 0 评论 -
for循环语句全示例
代码if-else语句import java.util.Scanner;public class demo01 { public static void main(String[] args) { int x = 0; Scanner sc = new Scanner(System.in); x = sc.nextInt();原创 2015-07-16 20:46:15 · 2283 阅读 · 0 评论 -
如何跳出嵌套循环
前言我们经常在循环体中,在执行业务逻辑之前进行是否满足某些条件的判断,如果不满足条件则跳出循环,从而大大加快运行速度,下面就简单总结一下如何跳出循环。跳出本次循环跳出本次循环就是,在该次循环时判断是否满足条件,如果不满足则进行到下一个循环,依次类推! 使用到的关键字:continue;for (int i = 0; i < 10; i++) { if (i==5){ con原创 2017-03-02 15:37:12 · 8968 阅读 · 1 评论 -
如何用一个list去更新另一个list
需求数据展示有一个list,它的泛型是一个实体类,然后我们编辑界面信息,获得了实体类中一个String字段的list,要求如果原list含有该字段的实体,则保留。如果没有,则去掉该实体。如果新加入,则new一个实体添加!方案在Java list的API中有两个方法,这里提一下,removeAll()和retainAll(),两个方法的参数都是Collection,前者是去掉两个集合中共有的元素,后者原创 2019-10-28 14:10:59 · 4515 阅读 · 0 评论 -
面筋:Java实现''the sky is blue''反转输出为"blue is sky the"
思路我们可能首先想到的是利用split()方法分割,然后利用StringBuffer逆序输出数组中字符串进行拼接!可是这样的空间复杂度比较高!先将字符串转为char[],然后整体对char[]进行逆序反转然后再根据空格位置,对每一个单词再次逆序反转实现直接上代码: //反转char[]字符数组的方法 private static void reverse(char[]...原创 2019-05-22 17:56:28 · 1287 阅读 · 0 评论 -
Eclipse关于设置code style的问题
问题描述当我们在Eclipse中开发项目的时候,如果在移动下一行的时候,按了Tab键,或者经常用ctrl+shift+f进行格式化,那么代码在Eclipse中看起来没问题,如果我们提交代码到Gerrit上或者其他代码管理工具上,或者将代码导出到普通的文本编辑器上时,就会出现非常大的改动,甚至乱七八糟,影响阅读和测试!如果在对code style要求比较严格的公司,那么你就GG了!解决方法首先在Wi原创 2016-03-18 17:35:06 · 3144 阅读 · 0 评论 -
MarkDown的使用、JAVA环境变量的配置、JAVA基础
目录索引MarkDown的使用 JAVA环境变量的配置 我的第一个JAVA程序 JAVA基础MarkDown的使用标题 引用 代码 图片 索引 标题使用#表示一级标题,##表示二级标题,###表示三级标题等等 使用===表示高阶标题,—表示次阶标题 引用使用>表示一级引用,>>表示二级引用,>>>表示三级引用 实例: 一级引用 二级引用原创 2015-07-14 19:52:16 · 1533 阅读 · 0 评论 -
HttpURLConnection和HttpClient的用法
HttpServlet这里的servlet用上一篇博客中的作为web服务器!DoGet方法使用httpservlet中的DoGet方法,与服务器进行数据交互!import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnec原创 2015-08-12 19:51:32 · 1880 阅读 · 0 评论 -
事务、Tomcat服务器的搭建
事务简介数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。代码示例创建SQLManager类import java.sql.Conn原创 2015-08-11 19:09:24 · 850 阅读 · 0 评论 -
数据库
数据库基础知识特点实现数据共享减少数据的冗余度数据的独立性数据实现集中控制数据的一致性和可维护性,以确保数据的安全性和可靠性种类层次型数据库:类似于树结构,记录之间的联系通过指针实现网状型数据库:网络模型是使用网络结构表示实体类型,实体间的联系的数据模型面向对象型数据库:建立在面向对象模型基础上关系型数据库:是目前最流行的数据库,是基于关系模型建立的数据库,关系模型是由一系列表格原创 2015-08-10 21:09:17 · 1224 阅读 · 0 评论 -
简单工厂设计模式
简单工厂设计模式简介当我们在做一个项目的时候,往往会对代码改了又改,删了又删,寻求一个最完美的方案,当在调试的时候,每运行一次,都要重新进行编译。所以,要求我们在有新的需求或新的想法的时候,不是修改代码,而是增加代码的方式来实现,而且尽量让运行时,不再重新编译! 简单工厂模式由三种角色组成: 1、工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。原创 2015-08-04 21:10:25 · 588 阅读 · 0 评论 -
JAVA网络编程
网络编程IntAddress类简介public class InetAddress extends Object implements Serializable 此类表示互联网协议 (IP) 地址。 IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。方法摘要public String getHostName()原创 2015-08-03 21:22:48 · 746 阅读 · 0 评论 -
Object类、JAVA反射机制、Annotation功能
Object类简介java.lang.Object public class Object 类Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。方法摘要public final Class<?> getClass()返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方原创 2015-07-28 20:26:25 · 1339 阅读 · 0 评论 -
正则表达式、JAVA线程
正则表达式定义指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。 因此,典型的调用顺序是 Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"原创 2015-07-28 19:16:13 · 908 阅读 · 0 评论 -
Object类、JAVA的异常处理机制
Object类说明类 Object 是类层次结构的根类,所有的类都继承于Object类,所有对象(包括数组)都实现这个类的方法。 方法摘要:equals(Object obj) 指示其他某个对象是否与此对象“相等”,返回一个boolean值。hashCode() 返回该对象的哈希码值toString() 返回该对象的字符串表示。代码示例创建Student类public class原创 2015-07-22 20:27:08 · 735 阅读 · 0 评论 -
静态类和静态方法、接口和抽象类、内部类、单子设计模式
静态类和静态方法static关键字static可以修饰类共有的变量,方法和嵌套类。static声明的属性和方法与整个类相关,而与类的任何实例无关,因此静态成员经常称为类成员,例如类属性和类方法。静态的变量和方法可以通过类名.属性名和类名.方法名()直接调用,不需要new一个实例。一个类的静态属性与方法能够被其他类共享,其数据存放在特定的内存空间中。 例如:Integer类中有parseIn原创 2015-07-21 21:13:33 · 1339 阅读 · 0 评论 -
类和对象、封装和继承
类和对象类和对象的关系类是具有相同属性和方法的一组对象的集合。 1. 从语义上理解:类是用于创建对象的模板,是一个抽象的概念,而对象是类的一个实例。 2. 从语法上理解:类是我们自定义的一种数据类型,而对象则是这种数据类型的变量。类的定义public class 类名{ 访问修饰符 类型 属性名 //成员变量,也叫全局变量 访问修饰符 返回值类型 方法名(参数类型原创 2015-07-20 21:16:20 · 2148 阅读 · 0 评论 -
变量和运算符的使用、JAVA控制语句
变量的使用变量的命名首字母:字母,下划线_,美元$符号(通常情况都是字母,下划线和美元符号都代表特殊的含义) 驼峰命名法:必须为名词,首字母必须小写,且单词首字母必须大写变量的声明1.基本数据类型的声明:数据类型+变量名称,即在栈内存中开辟一个内存空间。 2.引用数据类型的声明:数据类型+变量名称,在栈内存中开辟空间,存放的是在堆内存中的地址。变量的赋值1.基本数据类型的赋值:变量名称=赋值,值原创 2015-07-15 18:50:01 · 845 阅读 · 0 评论 -
JAVA设计模式之工厂设计模式
一、介绍工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式在《Java与模式》中分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品;这三种模式从转载 2015-10-30 18:46:52 · 447 阅读 · 0 评论