
【Java基础】
文章平均质量分 71
心歌技术
认知迭代命运
展开
-
一起研究Object有那些方法?
首先我们知道类Object是类层次结构的根。 每个类都有一个Object作为超类。所有对象,包括数组,都实现了这个类的方法。但Object类中都有哪些方法呢?简单的代码开始,package com.study.object;public class Demo1 { public static void main(String[] args) { Object obj = new Object(); System.out.println(obj);原创 2021-07-08 14:58:06 · 209 阅读 · 1 评论 -
利用Java程序分析福彩3D
昨天写了一篇利用Java程序统计彩票双色球中一等奖究竟有多难 今天突然来了兴趣想利用java程序分析分析福彩的3D,虽然没有买过这种彩票,但冲着作为一个程序猿的对需求的敏感分析性,我决定试一哈首先先分析了3D投注相关的规则---------------------------第二章 投 注 第六条 3D是指以三个号码排列或组合为一注进行单式投注,投注号码由000-999组成,三个位置从左至右分别为“百位”、“十位”、“个位”,一组三个号码的排列或组合称为一注。每注金额人民币2元。购买...原创 2020-10-29 15:32:52 · 3194 阅读 · 3 评论 -
Local variable xxx defined in an enclosing scope must be final or effectively final
匿名内部类和局部内部类只能引用外部的fianl变量,因为局部变量在初始化后,又对这个变量进行了赋值。赋值后会认为这个变量不是final了,所以报错。把变量变成fianl即可不报错。但是这样的话我们就不能实现关于最大年龄在排序时做的统计,解决方法很简单,将上面的maxAge换成数组类型存储最大年龄即可。lambda表达式也有类似问题,其可以访问给它传递的变量,访问自己内部定义的变量,同时...原创 2019-11-08 16:50:19 · 56078 阅读 · 0 评论 -
兔子繁殖问题(斐波那契数)
兔子繁殖问题斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?我们不妨拿新出生的一对小兔子分析一下:第一个月小兔子没有繁殖能力,所以还是一对两个月后,生下一对小兔对数共有两对三个月以原创 2017-10-06 19:43:44 · 10843 阅读 · 0 评论 -
使用Java实现串口通信
使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码下载地址:http://download.csdn.net/detail/kong_gu_you_lan/9611343 效果图如下: 2.RXTXcomm使用方法: 拷贝 RXTXcomm.jar 到 JAVA_HOME\jre\lib\ext目录中; 拷贝 rxtxSerial.dll 到转载 2017-09-28 11:00:34 · 6282 阅读 · 4 评论 -
对下列数据进行操作
对下列数据进行操作:public class test { public static void main(String[] args) { List list = new ArrayList(); list.add(new Student("Tom", 18, 100, "class05")); list.add(new Student("Jerry", 22, 70, "cl原创 2017-09-07 09:44:23 · 410 阅读 · 0 评论 -
将输入的一个数进行多少次变换变成个位数
题目:将输入的一个数进行多少次变换变成个位数 例子:输入 285 — 2*8*5=80 –8*0–0 –需要2次变换 要求输入:整数小于等于2,000,000,000import java.util.Scanner;public class test { private static int temp = 0; public stati原创 2017-09-07 18:05:25 · 678 阅读 · 0 评论 -
给出一个区间[a, b],计算区间内“神奇数”的个数。
题目:给出一个区间[a, b],计算区间内“神奇数”的个数。神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。 例子:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。解题思路:先求11到99所有质数,存于列表 第一个循环从a到b,将数字 I 转换成字符串S 第二个循环将质原创 2017-09-07 20:55:55 · 3497 阅读 · 0 评论 -
得到交替排列形式字符串
题目:牛牛有n张卡片排成一个序列.每张卡片一面是黑色的,另一面是白色的。初始状态的时候有些卡片是黑色朝上,有些卡片是白色朝上。牛牛现在想要把一些卡片翻过来,得到一种交替排列的形式,即每对相邻卡片的颜色都是不一样的。牛牛想知道最少需要翻转多少张卡片可以变成交替排列的形式。分析:由题意得,要得到交替排列形式,只有BWBWBW....或者WBWBWB...两种可能。只需要用两原创 2017-09-07 21:30:53 · 800 阅读 · 0 评论 -
String类中方法详解
String类中方法详解1.indexOf()String Str = new String("www.V321.top"); String SubStr1 = new String("V321"); String SubStr2 = new String("top"); System.out.println(Str.indexOf( 'o' ));/原创 2017-09-11 23:25:07 · 357 阅读 · 0 评论 -
六.java多线程之常用函数理解
六.java多线程之常用函数理解①sleep(long millis): 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)②join():指等待t线程终止。使用方式。join是Thread类的一个方法,启动线程后直接调用,即join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,原创 2017-09-26 22:19:34 · 475 阅读 · 0 评论 -
五.java多线程之线程同步
五.java多线程之线程同步1、synchronized关键字的作用域有二种: 1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronize原创 2017-09-26 22:09:39 · 264 阅读 · 0 评论 -
四.java多线程之常见线程名词解释
三.java多线程之常见线程名词解释主线程:JVM调用程序main()所产生的线程。当前线程:这个是容易混淆的概念。一般指通过Thread.currentThread()来获取的进程。后台线程:指为其他线程提供服务的线程,也称为守护线程。JVM的垃圾回收线程就是一个后台线程。用户线程和守护线程的区别在于,是否等待主线程依赖于主线程结束而结束前台线程:是指接受后台线程服务的线程,原创 2017-09-26 22:06:55 · 655 阅读 · 0 评论 -
三.java多线程之线程调度
三.java多线程之线程调度1、调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会。 Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三个静态常量:static int MAX_PRIORITY 线程可以具有的最高优先级,取值为10。static int MIN_PRIORITY原创 2017-09-26 22:02:27 · 789 阅读 · 0 评论 -
一.java多线程之实现方法
一.java多线程之实现方法1. 继承java.lang.Thread类并重写run方法class Test1 extends Thread{ private String name; public Test1(String name) { this.name=name; } public void run() {原创 2017-09-26 21:55:20 · 438 阅读 · 0 评论 -
二.java多线程之线程状态转换
二.java多线程之线程状态转换 1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4、阻塞状态(Bl原创 2017-09-26 21:59:04 · 315 阅读 · 0 评论 -
JDBC事务和JTA事务的区别
一、事务概述事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做。与事务相关的操作主要有:BEGIN TRANSACTION; 开始一个事务,方法是:begin()COMMIT; 提交一个事务,方法是:commit()ROLLBACK; 回滚一个事务,方法是:rollback()PREPARE; 准备提交转载 2017-10-18 14:43:33 · 351 阅读 · 0 评论 -
Spring在代码中获取bean的几种方式
方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类ApplicationObjectSupport方法四:继承自抽象类WebApplicationObjectSupport 方法五:实现接口ApplicationContextAware 方法六:通过Spring提供的Conte...原创 2018-04-28 08:53:50 · 684 阅读 · 0 评论 -
ElasticSearch教程001-ElasticSearch简介
ElasticSearch ES是一个基于Lucene的分布式全文搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它是用Java开发的,是当前流行的企业级搜索引擎。和SQL Server的全文索引(Fulltext Index)有点类似,都是基于分词和分段的全文搜索引擎,具有分词,同义词,词干查询的功能,但是ES天生具有分布式和实时的属性,设计用于云计...原创 2018-02-27 14:21:20 · 398 阅读 · 0 评论 -
Object... 的用法
Object是所有类的基类,这个你可以查询jdk文档了解,所有类都继承自Object。Object ...objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。即这个方法可以传递多个参数,这个参数的个数是不确定的。这样你在方法体中需要相应的做些处理。因为Object是基类,所以使用Object ...objects这样的参数形式,允许一切继承自Object的对象作为参数。这种方法...原创 2018-01-12 16:39:33 · 896 阅读 · 0 评论 -
自定义标签实现long转换date
近期编写一个项目,数据库中时间要存储为long型的,数据库里存储的是bigint型的时间。entity实体中存放的是long类型的标签,现在想输出到jsp页面。由于使用的是jstl标签,而要显示的是可读的时间类型。找来找去有个 fmt:formatDate可以转化,但是只能将String类型的转成date型,long型则不可以。觉得自定义标签比较靠谱,也不破环jsp页面这种标签结构,把原创 2017-11-07 19:18:07 · 589 阅读 · 0 评论 -
为什么要定义成integer类型
int 是基本数据类型Integer是其包装类,注意是一个类。为什么要提供包装类呢???一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。比如,现在int要转为Stringint a=0;String result=Integer.toString(a);在java中包装类,比较多的用途是用在于各种数据类型的转化中。我写几个demo//原创 2017-11-07 18:49:32 · 3180 阅读 · 0 评论 -
Java中的内存泄漏
Java语言的一个关键的优势就是它的内存管理机制。你只管创建对象,Java的垃圾回收器帮你分配以及回收内存。然而,实际的情况并没有那么简单,因为内存泄漏在Java应用程序中还是时有发生的。下面就解释下什么是内存泄漏,它为什么会发生,以及我们如何阻止它的发生。1. 什么是内存泄漏?内存泄漏的定义:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。原创 2017-10-05 16:16:44 · 536 阅读 · 0 评论 -
java堆内存与栈内存
java堆内存与栈内存Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回原创 2017-10-03 17:11:33 · 4342 阅读 · 3 评论 -
Java中的断言的使用
在防御式编程中经常会用断言(Assertion)对参数和环境做出判断,避免程序因不当的输入或错误的环境而产生逻辑异常。断言一般用于程序不准备通过捕获异常来处理的错误。一、语法形式 Java在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion),它的语法形式有如下所示的两种形式:1、assert condition;原创 2017-10-05 15:58:04 · 653 阅读 · 0 评论 -
tomcat内存溢出问题记录
问题说明:公司内网环境中部署的jenkins代码发版平台突然不能访问了,查看tomcat的catalina.out日志发现报错如下:123456[root@redmine logs]# tail -f /srv/apache-tomcat-7.0.67/logs/catalina.out原创 2017-10-05 11:18:54 · 652 阅读 · 0 评论 -
java垃圾回收机制
深入理解 Java 垃圾回收机制一:垃圾回收机制的意义java 语言中一个显著的特点就是引入了java回收机制,是c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不在考虑内存管理。由于有个垃圾回收机制,java中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存; 内存原创 2017-10-03 16:59:52 · 248 阅读 · 0 评论 -
深入理解java对象序列化
1. 什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。使用Java对象序列化,在保存对象时,会把原创 2017-10-03 15:40:51 · 281 阅读 · 0 评论 -
去掉一个 Vector 集合中重复的元素
在java中去掉一个 Vector 集合中重复的元素1.通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下。private Vector getNoSameObjectVector(Vector vector){ Vector tempVector = new Vector(); for (int原创 2017-10-03 10:39:16 · 2811 阅读 · 0 评论 -
Java设计模式之抽象工厂模式
抽象工厂(abstract factory)概念:指当有多个抽象角色时,使用的一种工厂模式; 抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象 优点: 1.隔离了具体类的生成,使得客户不需要知道什么被创建了 2.当一个产品族中的多个对象被设计成一起工作时,能保证客户端始终只使用一个产品族中的对象 适用: 1.一个系统要独立于它的产品的原创 2017-09-08 20:12:35 · 410 阅读 · 0 评论 -
程序员面试之九阴真经
程序员面试之九阴真经谈谈final, finally, finalize的区别: final:::修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读原创 2017-09-08 11:47:41 · 977 阅读 · 0 评论 -
Java Socket编程
Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这原创 2017-08-13 16:45:41 · 292 阅读 · 0 评论 -
利用java打印心型图案
利用java打印心型图案问题分析心形图案的实现,重点是心形函数r=a(1–sinθ),据说这是笛卡尔死前寄出的最后一封情书的内容,这里面隐藏着一个刻骨铭心的秘密:“一生只为等待能手绘这个函数给我的人”。心形函数要做直角坐标系转换,然后投影到xOy平面上,就可以调用画椭圆方法来实现画心形图案。(1)确定程序框架为了提高图像的显示效果,须采用双缓冲技术。首先初始化缓冲区原创 2017-06-26 22:31:44 · 20375 阅读 · 0 评论 -
Java标识符定义规则
Java标识符定义:Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标示符。作用:用来给类、对象、方法、变量、接口和自定义数据类型命名的。 命名规则:① 由数字,字母,下划线,$组成且 首字符不能为数字。 ②Java标示符区分大小写。 ③Java使用U原创 2017-07-09 06:49:25 · 1754 阅读 · 0 评论 -
汉字的URL转义字符函数
public class zhuanyi {public static void main(String[] args) {//中文字符串转义String base = "\u5B66\u53F7";for(int i = 0;iSystem.out.print(base.charAt(i)+ " ");System.out.println();}}原创 2016-06-06 18:02:05 · 1627 阅读 · 0 评论 -
java猜数字游戏并生成信息写入到文件中
java猜数字游戏并生成信息写入到文件中代码如下package test4;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;import java.util.Date;import java原创 2017-07-05 21:27:09 · 725 阅读 · 0 评论 -
java打印出国际象棋棋盘
打印出国际象棋棋盘问题分析观察国际象棋棋盘的图案,可以发现其中的规律:棋盘由八行八列黑白方块相间组成,可以用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方块还是白方块。这里我们使用了Swing的标签组件JLable,通过设置JLabel组件的背景色和透明度来实现黑白方块。(1)确定程序框架这是一个绘图案例,这里我们采用JFrame创建窗口,然后在窗口里添加原创 2017-06-26 22:17:02 · 5746 阅读 · 1 评论 -
java杨辉三角的实现
根据输入行数,打印出杨辉三角形。1.首先分析杨辉三角两侧全部都是1,中间的数等于其上边两数之和。如果在二维数组中,则如下:2.可以通过二维数组来处理方阵,一个双重循环就能实现,外循环控制行数,内循环控制列来完成方阵内数字的计算和存储。程序编写 a.首先编写出程序框架import java.util.Scanner;public class First原创 2017-06-26 22:02:08 · 960 阅读 · 0 评论 -
利用java打印出金字塔图案
分析:想要得到上述图片样式,一个是要实现打印*数量的递增 另一个是要考虑每行的填充,用什么填充 当然是空格了!代码如下:import java.util.Scanner;public class First { public static void main(String[] args) { int i,j,k,n; Scanner input=new Scann原创 2017-06-26 16:55:09 · 43655 阅读 · 5 评论 -
利用MyEclipse创建一个applet小应用程序
1.打开MyEclipse创建一个web项目 2.项目名上右键点击创建一个applet3.编写applet程序内容4.运行a.可以直接在点击窗体上的运行按钮b.也可以到文件目录创建一个html文件嵌入编译后的.class文件,在cmd中用appletviewer *.html运行例子applet文件 实现余弦函数曲线图import java.ap原创 2017-06-26 16:25:59 · 5638 阅读 · 0 评论