关于talejava博客的信息

本篇文章给大家谈谈talejava博客,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、用java api进行sort2、学习java se注重的只是点是哪些,最难学的知识点有哪些呢?3、北通蝙蝠4可以玩我的世界吗4、Java Web 项目,数据库建表

用java api进行sort

作者 SUNJ 本节中所描述的多态算法 (polymorphic algorithms)是由 JDK 所提供的可重复使用的功能性片段 它们均取自Collections类 并都采用静态方法(它的第一个参数是执行操作的 对象集)的形式 由Java平台所提供的绝大多数算法都操作于List对象 但有两个 (min 和 max) 操作于任意Collection对象 以下是关于算法的描述排序(Sorting) 排序算法可为一个 List 重新排序 以使它的元素按照某种排序关系成上升式排序 有两种形式的操作被提供 简单形式的操作只采用一个 List 并按照它的元素的自然排序进行排序 如果你对自然排序的概念不熟悉 那么应该重新阅读 对象排序(Object Ordering) sort 操作使用做了些优化的合并排序(merge sort) 算法 如果你不知道它的含义 而又很看重它的话 请阅读关于算法的任意一种教科书 这个算法的重要之处是 快速: 这个算法被保证运行在 n log(n) 时间内 并在已基本排序的列表上 它的速度实质上更快 经验表明 它的速度与高度优化的快速排序(quicksort)的速度差不多 Quicksort 一般被认为快于合并排序 但它不稳定 并不保证 n log(n)性能 稳定: 这就是说 它不为相等的元素重新排序 如果你为相同的列表做不同属性的重复排序 这一点对你来说是十分重要的 如果一个邮件程序的用户为它的邮件箱按日期排序 然后又按发件人排序 这个用户自然地期望某个特定发件人的现在相邻的消息列表将(仍然)按日期排序 这一点只有在第二个排序是稳定的时候才能得以保证 以下是 一个小程序 它可按词典(字母)顺序打印它的参数 import java util *;public class Sort {public static void main(String args[]) {List l = Arrays asList(args);Collections sort(l);System out println(l);}}让我们运行这个程序 % java Sort i walk the line[i line the walk]演示这个程序只是为了表示我是毫无保留的 这个算法确实是象它们所显现的那样简单 我不想低估你的能力而演示更傻的例子 第二种形式的 sort除采用一个 List 外 还采用一个 Comparator 并且使用 Comparator 对元素进行排序 还记得在 Map 课程结束时的排列组的例子吗? 它以一个非特定的顺序打印出排列组 假设你要以相反的大小顺序打印它们 大的排列在前面 下列例子将告诉你如何借助 sort 方法的第二种形式而达到你的目的 回想一下 排序表是以 List 对象的形式作为一个 Map 中的值而被存储的 修改后的打印代码通过 Map 的 values视图进行迭代 将每一个通过最小尺寸测试的List放进List 之中 然后 代码使用一个期望 List 对象的 Comparator 为这个 List 排序 并实现反转大小排序 最终 代码通过现在已排序的 List 进行迭代 打印它的元素(排序组) 这个代码在 Perm 的 main 方法末尾替代了打印代码: // Make a List of all permutation groups above size thresholdList winners = new ArrayList();for (Iterator i = m values(erator(); i hasNext(); ) {List l = (List) i next();if (l size() = minGroupSize)winners add(l);}// Sort permutation groups according to sizeCollections sort(winners new Comparator() {public int pare(Object o Object o ) {return ((List)o ) size() ((List)o ) size();}});// Print permutation groupsfor (Iterator i=erator(); i hasNext(); ) {List l = (List) i next();System out println(l size() + : + l);}用与 Map 课程中使用的相同的词典运行 这个程序 并使用相同的最小排序组尺寸( ) 会产生下列输出: % java Perm dictionary txt : [apers apres asper pares parse pears prase presa rapes reaps spare spear] : [alerts alters artels estral laster ratels salter slater staler stelar talers] : [least setal slate stale steal stela taels tales teals tesla] : [estrin inerts insert inters niters nitres sinter triens trines] : [capers crapes escarp pacers parsec recaps scrape secpar spacer] : [anestri antsier nastier ratines retains retinas retsina stainer stearin] : [palest palets pastel petals plates pleats septal staple tepals] : [carets cartes caster caters crates reacts recast traces] : [ates east eats etas sate seat seta teas] : [arles earls lares laser lears rales reals seral] : [lapse leaps pales peals pleas salep sepal spale] : [aspers parses passer prases repass spares sparse spears] : [earings erasing gainers reagins regains reginas searing seringa] : [enters nester renest rentes resent tenser ternes treens] : [peris piers pries prise ripes speir spier spire]# ;上一页 下一页# ;a混排(Shuffling)混排算法所做的正好与 sort 相反: 它打乱在一个 List 中可能有的任何排列的踪迹 也就是说 基于随机源的输入重排该 List 这样的排列具有相同的可能性(假设随机源是公正的) 这个算法在实现一个碰运气的游戏中是非常有用的 例如 它可被用来混排代表一副牌的 Card 对象的一个 List 另外 在生成测试案例时 它也是十分有用的 这个操作有两种形式 第一种只采用一个 List 并使用默认随机源 第二种要求调用者提供一个 Random 对象作为随机源 这个算法的一些实际代码曾在 List 课程中被作为例子使用 常规数据操作(Routine Data Manipulation)Collections 类为在 List 对象上的常规数据操作提供了三种算法 这些算法是十分简单明了的:reverse: 反转在一个列表中的元素的顺序 fill: 用特定值覆盖在一个 List 中的每一个元素 这个操作对初始化一个 List 是十分有用的 copy: 用两个参数 一个目标 List 和一个源 List 将源的元素拷贝到目标 并覆盖它的内容 目标 List 至少与源一样长 如果它更长 则在目标 List 中的剩余元素不受影响 搜索(Searching)binary search (二进制搜索)算法用二进制搜索算法在一个已排序的 List 中寻找特定元素 这个算法有两种形式 第一种采用一个 List 和一个要寻找的元素 ( 搜索键(search key) ) 这种形式假设 List 是按照它的元素的自然排序排列成上升顺序的 第二种形式除采用 List 外 还采用一个 Comparator 以及搜索键 并假设 List 是按照特定 Comparator 排列成上升顺序的 排序算法(描述见上) 可优先于 binarySearch 而被用来为List 排序 两种形式的返回值是相同的: 如果 List 包含搜索键 它的索引将被返回 如果不包括 则返回值为 ( (insertion point) ) 这里的 insertion point 被定义为一个点 从这个点该值将 *** 入到这个 List 中 大于该值的第一个元素的位置索引 或list size() 选用这个不可否认的难看的公式是为了保证如果且仅如果搜索键被发现 则返回值将等于 它基本上是一个将布尔逻辑 ( found ) 和整数 ( index ) 综合到单一的int返回值的大杂烩 下列惯用程序对 binarySearch 操作的两种形式均适用 它寻找特定搜索键 如果搜索键不出现 则将它插入到适当的位置: int pos = Collections binarySearch(l key);if (pos 0)l.add(-pos-1, key);寻找极值(Finding Extreme Values) min 和 max 算法分别返回包含在特定 Collection 中的最小和最大元素。tW.WINGwIt这两个操作都各有两种形式,简单形式只采用一个 Collection, 并按照元素的自然排序返回最小 (或最大) 元素;另一种形式除采用 Collection 之外,还采用一个 Comparator,并按照特定 Comparator返回最小(或最大)元素。 这些就是由Java 平台提供的作用于与 List 对象相对的任意 Collection 对象上的仅有算法,就象上面提到的 fill 算法一样,这些算法都是非常简单明了的,它们是Java平台为程序员特别提供的便利工具。 lishixinzhi/Article/program/Java/JSP/201311/19791

关于talejava博客的信息

学习java se注重的只是点是哪些,最难学的知识点有哪些呢?

1. 基本数据类型

整形:

byte 1 个字节

short 2 个字节

int 4个字节

long 8个字节

字符:

char 2个字节

浮点数:

float 4个字节

double 8个字节

布尔:

boolean 1个字节

2.java 7 新增二进制整数

以0b或者0B开头

3.java中字符时16位的Unicode编码方式,格式是’\uXXXX’,其中xxxx代表一个十六进制整数

4.java中规定了正无穷大、负无穷大和零

正无穷大= 一个正数除以0

负无穷大= 一个负数除以零

0.0 除以0.0 或者 对一个负数开方 得到一个非数

5. 在java中布尔类型只能是true和false

6. 在java中没有多维数组

看似像C语言中的多维数组不是真正的数组,比如 a[3][4] , a[0] a[1] a[2] 是真实存在的,装的是地址,和c语言中动态分配为的数组一样

int [][] b = new int[3][4]

7. Java中带包的编译方法

javac -d . Hello.java 会在当前目录下生成目录树

运行 java 包名字.类名字

8. Java多态中的对象的filed 不具有多态性,如 父类 对象 = new 子类(), 对象.field 是调用的父类的,即使子类中覆盖了该字段。

9. instanceof 运算符

格式: 引用变量名 instanceof 类名(或者接口) 他用于判断前面的对象是否是后面对象的类,子类、实现类的实例,是返回true,否者返回false

10. Java 中基本数据类型和对应封装类之间的转化

int a = 1;

Integer A = new Integer(a);

a = A.intValue();

其他的类型也是这样的。

11.单例(singleton)类 例子

复制代码 代码如下:

class Singleton

{

private static Singleton instance;

private Singleton(){}

public static Singleton getInstance()

{

if(instance == null)

{

instance = new Singleton();

}

return instance;

}

public static void main(String[] args)

{

Singleton s1 = Singleton.getInstance();

Singleton s2 = Singleton.getInstance();

System.out.println(s1 == s2);

}

}

12.final修饰的成员变量初始化问题

类Field: 必须在静态初始块中或声明该FIeld时指定初始值

实例Field:必须在非静态初始块中或声明该FIeld时指定初始值或构造器中声明

13.Final 变量必须显式初始化,系统不会对final变量进行隐式初始化

14.java会使用常量池来管理曾经用过的字符串直接常量,例如:String a = “java”; ,系统把常量字符串“java”存在常量池,当再次执行 String b = “java”; a == b 是true

15.final 方法不可以重写,final类不能被继承

如果用private 方法 和 final private 是一样的

若果是用final修饰的方法在子类中出现,那是子类新定义的,与父类没有关系

16.不可变类:创建后该类的Field是不可改变的。java提供了8个基本变量的包装类和string都是不可改变类。

17.缓存实例的不可改变类

复制代码 代码如下:

class CacheImmutale

{

private static int MAX_SIZE = 10;

private static CacheImmutale[] cache = new CacheImmutale[MAX_SIZE];

private static int pos = 0;

private final String name;

private CacheImmutale(String name)

{

this. name = name;

}

public String getName()

{

return name;

}

public static CacheImmutale valueOf(String name)

{

for(int i = 0; i MAX_SIZE; ++i)

{

if(cache[i] != null cache[i].getName().equals(name))

return cache[i];

}

if(pos == MAX_SIZE)

{

cache[0] = new CacheImmutale(name);

pos = 1;

}

else

{

cache[pos++] = new CacheImmutale(name);

}

return cache[pos -1];

}

public boolean equals(Object obj)

{

if(this == obj)

return true;

if(obj != null obj.getClass() == CacheImmutale.class)

{

CacheImmutale ci = (CacheImmutale)obj;

return name.equals(ci.getName());

}

return false;

}

public int hashCode()

{

return name.hashCode();

}

}

public class CacheImmuteTest

{

public static void main(String[] args)

{

CacheImmutale c1 = CacheImmutale.valueOf(“Hello”);

CacheImmutale c2 = CacheImmutale.valueOf(“Hello”);

System.out.println(c1 == c2);

}

}

用缓存实例要看某个对象的使用频率,若重复使用那就利大于弊,若不经常使用那弊就大于利

还有java提供的java.lang.Integer 创建数值在-128-127之间的数采用缓存机制的

Integer in2 = Integer.valueOf(6);

Integer in3= Integer.valueOf(6);

in2 == in3 is true;

18. static 和 abstract 不能同时修饰一个方法,没有类抽象方法

19.一个类可以又一个父类,实现多个接口,接口中Filed是public 、static、final的,方法是public abstract的

20.非静态内部类的方法访问某个变量,搜索顺序为:先内部类中方法内- 内部类 – 外部类中如果都找不到则出现编译错误

复制代码 代码如下:

import java.util.*;

public class DiscernVariable

{

private String prop = “外部类的实例变量”;

private class InClass

{

private String prop = “内部类的实例变量”;

public void info()

{

String prop = “局部变量”;

System.out.println(“外部类的field值:” + DiscernVariable.this.prop);

System.out.println(“内部类的field值:” + this.prop);

System.out.println(“局部变量的值:” + prop);

}

}

public void test()

{

InClass in = new InClass();

in.info();

}

public static void main(String[] args)

{

new DiscernVariable().test();

}

}

21.非静态内部类不能有静态方法、静态Field、静态初始化块

22.在外部类之外访问内部类

访问非静态内部类:outclass.Inclass varname = new outclass().new InClass();

访问静态内部类: outclass.Inclass varname = new outclass.Inclass();

复制代码 代码如下:

import java.util.*;

class Out

{

class In

{

public In()

{

System.out.println(“非静态内部类构造器”);

}

}

}

public class CreatInnerInstance

{

public static void main(String[] args)

{

Out.In in = new Out().new In();

/*

以上的代码可分开写为:

Out.In in;

Out out = new Out();

in = out.new In();

*/

}

}

class SubClass extends Out.In

{

//显示定义SubClass的构造器

public SubClass(Out out)

{

//通过转入的Out对象显示调用In的构造器

out.super();

}

}

复制代码 代码如下:

import java.util.*;

class StaticOut

{

static class StaticIn

{

public StaticIn()

{

System.out.println(“静态内部类构造器”);

}

}

}

public class CreatStaticInnerInstance

{

public static void main(String[] args)

{

StaticOut.StaticIn in = new StaticOut.StaticIn();

/*

以上的代码可分开写为:

StaticOut.StaticIn in;

in = new StaticOut.StaticIn();

*/

}

}

class SubClass extends StaticOut.StaticIn

{

//无须创建内部类实例

}

北通蝙蝠4可以玩我的世界吗

我的世界Java版是不支持原生手柄的,基岩版可以。如果要手柄玩Java版可能需要按键映射。

Java Web 项目,数据库建表

Java 使用executeUpdate向数据库中创建表格

一、创建mysql.ini文件,配置如下

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/select_test

user=root

pass=123456

这样以后修改数据库的配置直接在mysql.ini文件中修改。

二、编写代码

 initParam方法: 获得mysql.ini中的数据

createTale方法: 连接数据库,并且executeUpdate执行sql语句。此例的sql文件为创建表语句。

 main方法: 传入Sql语句。

class ExecuteDDL {

private String driver;

private String url;

private String user;

private String pass;

Connection conn;

Statement stmt;

public void initParam(String paramFile) throws Exception {

Properties props = new Properties();

props.load(new FileInputStream(paramFile));

driver = props.getProperty(“driver”);

url = props.getProperty(“url”);

user = props.getProperty(“user”);

pass = props.getProperty(“pass”);

}

public void createTale(String sql) throws Exception{

try {

Class.forName(driver);

conn = DriverManager.getConnection(url,user,pass);

stmt = conn.createStatement();

stmt.executeUpdate(sql);

}

finally

{

if (stmt != null) {

stmt.close();

}

if (conn != null) {

conn.close();

}

}

}

/**

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

ExecuteDDL ed = new ExecuteDDL();

ed.initParam(“src/mysql.ini”);

ed.createTale(“create table student ” +

“(id int, ” +

“name varchar(50), ” +

“num varchar(20) )”);

System.out.println(“Creating table success!”);

}

 注意事项:传入的Sql语句最好在MySql测试通过,并且传入的mysql.int文件的路径必须正确。 

当执行完毕后,在MySql的select_test数据库中查看该Student表是否已经创建成功了。

三、使用executeUpdate方法,向表中插入数据。

将上面的创建表的Sql语句改为插入数据表的语句,执行executeUpdate方法,其结果就是想表中插入数据。

创建insertSql变量。

private static String insertSql = “insert into student values(1,’XiaoMing’,’06108787′)”;

 执行插入语句。

ed.createTale(insertSql);

关于talejava博客和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月2日 16:41:39
下一篇 2024年4月2日 16:48:48

相关推荐

  • 关于excel查找重复的函数的信息

    excel中vlookup函数如何查找重复值? 1、要查找两个表格中相同的列数据,可以使用 Excel 中的“VLOOKUP”函数或“MATCH”函数。 2、在一张Excel表格的重复记录中,让你快速列出每种不同物品第2次或第n次出现的记录,你会怎么做?Vlookup函数就有这个本事。 3、excel是办公一族常用的办公技巧,如何快速在不同的区域中找出相同的…

    2024年5月21日
    4200
  • 关于linuxlocalegen的信息

    如何用lynx浏览中文网页,我打开的总是乱码?我是在windows系统用虚拟机… 1、查看或输入中文网页的方法很简单,先启动汉字系统(例如CCDOS9UCDOS等,建议使用CCDOS97以取得最好的效果)再运行Lynx即可。 2、安装:sudo apt-get install links 使用: links 完成打开。Linux是一套免费使用和自…

    2024年5月21日
    4600
  • 关于excel3p的信息

    在excel2007中,公式=if(12,3,4,)的值是多少 通过excel可以完成很多工作,比如一组数据,可以得出这组数据的总和、平均值、乘积等等。就来说一下计算一组数据的乘积的方法。首先打开excel,由于我是在这里做演示,所以随便输入了两组数据。如图。 excel常用公式函数有:IF函数、SUMIFS函数、COUNTIF、VLOOKUP函数,LOOK…

    2024年5月21日
    3900
  • 关于c语言脱壳的信息

    软件如何脱壳 脱壳需要的工具:调试器 比如IDA Pro、OllyDbg等等。调试器是进行逆向工程必不可少的工具,它可以帮助我们查看和分析程序内存、寄存器、堆栈等状态信息,方便我们定位和分析代码。脱壳软件 比如UPX、ASProtect、Themida等等。 步骤2脱壳 对一个加了壳的程序,去除其中无关的干扰信息和保护限制,把他的壳脱去,解除伪装,还原软件本…

    2024年5月21日
    4000
  • 关于java1转一的信息

    java中把字符1转换为数字1的函数是什么? 1、(1)使用Integer.parseInt()和Double.parseDouble()方法。(2)第二个问题不全啊,如果你想把数字转换为字符串的话。可以使用String.valueOf()方法,也可以用+数字,来进行强转。 2、字符串里包含数字,首先要使用正则表达式将其中的数字提取出来,正则写法为: ^[0…

    2024年5月21日
    7600
  • 关于linux下的lftp的信息

    Linux下面的vsftpd和lftp区别? 但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号) Vsftp的安装配置1 安装vsftp 的安装包,可以在安装里找到。 用yum 安装过程也很简单。 区别如下:指代不同 scp:是用来进行远程文件拷贝的,是 SSH 中最方便有用的命令。ftp: 是 TCP/IP 协议组中的协…

    2024年5月21日
    3300
  • 关于excel下划线打不出来的信息

    表格空白下划线___怎么打 首先在Excle的任意单元格里输昌好入“姓名”,点击单元格上方字母右则“|”拉动将该列调整为合适大小。右键需要在空白处输入下划线的单元格,本示例的“姓名:”单元格,在弹出菜单中点击“设置单敬仿元格格式”。 选中需要设置的单元格。单击鼠标右键,并在选项中点击设置单元格格式。在页面点击上方的字体。在下划线选项选择下划线样式,以单下划线…

    2024年5月21日
    3700
  • 关于java读取项目txt文件的信息

    java如何读取txt文件? java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。 在代码里写入一个输入输出流即可。具体实现如下:BufferedReader bf= new BufferedReader(new FileRea…

    2024年5月20日
    3300
  • 关于dbaccessjava的信息

    java程序中AccountDAOFactory.getDBAccess()函数有什么作用 1、获得消息的,你传递的其他消息都是通过这个函数来获得进行操作处理的。 2、主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个…

    2024年5月20日
    4700
  • 关于java开发工具的信息

    Java开发者必备的工具有哪些? 1、SCanner 无数的Java开发工具可以帮助您构建解析器,许多函数语言已经成功地构建解析器库(解析器选择器)。 2、MongoDB MongoDB是使用非常广泛的工具,具有跨平台和面向文档数据库等优势,是现在使用最多的一种数据库。在使用过程中,有灵活的文档模型、高可用复制集、可扩展分片集群,还能进行实时监控等相关操作。…

    2024年5月20日
    3900

发表回复

登录后才能评论



关注微信