java基本数据类型总结

2024-08-03

java基本数据类型总结(精选12篇)

java基本数据类型总结 第1篇

这篇文章主要介绍了GO语言基本数据类型,较为详细的总结了GO语言的基本数据类型,对于GO语言的学习有一定的借鉴参考价值,需要的朋友可以参考下

1、注释(与C++一样)

行注释://块注释:/* ...*/

2、标识符

可以这么说,除了数字开头的不允许,符号开头的不允许,关键字不允许,其他的Unicode字符组合都可以。“_33”也可以是标识符、“我们”也可以是标识符。标识符也区分大小写。

(1)、以大写字母开头的标识符是公开的。(这个很有意思)

(2)、其他任何标识符都是私有的。

(3)、空标识符“_”是一个占位符,用于赋值操作的时候,丢弃、忽略某个值。通常这样用:

go的方法一般会返回2个值,一个通常的返回、一个错误标识。如 fmt.Println(x)会返回2个值,一个是打印的字节数,一个是相应的error值,那么 count,_ = fmt.Println(x) 这行代码就忽略了相应的error值。

3、常量――用const关键字声明

(1)可以自动推断类型,

如:

代码如下:

const a = 5

(2)可以显式指定类型,

如:

代码如下:

const a int16 = 6// int16是一个整形类型

(PS:go语言常量、变量定义的格式均为:

关键字 常量(变量)名 类型 = 值)

(3)可以一次声明多个常量,

如:const ( a = 0 ; b = 2),这叫分组声明。此时,第一个常量被默认设置为0,后续的常量默认设置为前面常量的表达式。

(PS: 但是希望用const (a b)表示a=0,b=0这样的是不行的,常量分组定义,第一个常量必须赋值、或为iota)

(PPS:注意,go语言中一般不需要分号来表示分隔,编译器会自动在每行的末尾添加分号,当然,添加分号也没有错,不过像liteide这样的IDE的自动格式化一般会帮你把分号删除,然后帮你换行)

(4)关键字iota表示连续的无类型的整数常量,iota默认为0,并逐步递增。

即,

代码如下:

const(a = iota; b ; c )

表示b和c此时都为iota,所以a为0,b为1,c为2。

(5)一行多个赋值中,iota不相互影响。每次iota出现,它的值为0,如:

代码如下:

const (

i, j, k = 2 * iota, iota, iota + 2

m, n, l

)

此时,i、j的值均为0,k的值为2,m、n、l 的值分别为2 、1 、3

(PS:go语言支持一行赋多个值)

4、变量

变量有2种定义方式:

(1)一种是用关键字var ,

例如:

代码如下:

var i int //这里会自动设置默认值0,如果是字符串,默认为空

或者:

代码如下:

var i = 8 //声明同时赋值,自动推导其类型

或者:

代码如下:

var k int = 16 //指明类型,声明并赋值

或者:

代码如下:

var ( a int; b int; c int) //分组声明,跟常量类似,

(2)另一种是用快速变量声明,就是用 := 操作符,它会声明并初始化一个变量,可以自动推导类型。不过这种声明有一个限制,它只能在函数内部使用,在函数外部会报错。

如:

代码如下:

name := “chandler qian” //自动推导类型为string

值得注意到是,:=操作符是声明并初始化,就是说,在同一个作用域内,这个变量必须未声明过,不然是错误。如下:

代码如下:

k, b := 7, 8

fmt.Printf(“before k=%d,b=%d ”, k, b)

if k := 1; k != -1 {

b := 3

fmt.Printf(“inner k=%d,b=%d ”, k, b)

}

fmt.Printf(“after k=%d,b=%d ”, k, b)

在下面的 if 作用于内,k、b重新用:=声明赋值,但没问题,因为出了 if 作用域,它们就消失了。

结果为:

before k=7,b=8

inner k=1,b=3

after k=7,b=8

而 if语句改为这样:

代码如下:

if k = 1; k != -1 {

b := 3

fmt.Printf(“inner k=%d,b=%d ”, k, b)

}

那么最后的输出就是:

before k=7,b=8

inner k=1,b=3

after k=1,b=8

可见,“=” 是全局作用的赋值,而,“:=” 则会在自己的作用域内创建变量并赋值。

(3)整形字面量的类型会自动推断为int,浮点字面量会自动推断为float64,复数字面量会自动推断为complex128

5、布尔

Go语言会严格筛选使用比较操作符(<、<=、==、!=、>=、>)进行比较的值。这两个值必须是相同类型或实现了相同的接口。如:

代码如下:

func test0 {

var a int = 5

var b float32 = 4.4

if a >b {

fmt.Println(“>”)

}

}

由于a和b类型不匹配,所以编译错误:invalid operation: a >b (mismatched types int and float32),再看下面这个:

代码如下:

func test1() {

var b float32 = 4.4

if b >7 {

fmt.Println(“>”)

}

}

这个是可以的,虽然类型不匹配,但是b与无类型的整形数值常量7比较。无类型的数值常量可以用于任何比较。

希望本文所述对大家的GO语言程序设计有所帮助。

java基本数据类型总结 第2篇

JAVA:

基本数据类型和类封装器的知识

基本数据类型的默认值

Overloading和overriding

JNI是什么?有什么特点?

看代码确定是编译期错误还是执行期错误

多线程中Thread和runnable的实现和使用

数据提升和cast

有效的.标识符

String的实例个数

==和equals的区别

同步锁

Notify和sleep的作用,区别

抽象类和interface

Try catch finally throwable throw的区别和用法

结合命令行参数考java数组的定义和使用

java基本数据类型总结 第3篇

list基本操作

Redis的list类型其实就是一个每个子元素都是string类型的双向链表。链表的最大长度是(2的32次方)。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。

有意思的是list的pop操作还有阻塞版本的,当我们[lr]pop一个list对象时,如果list是空,或者不存在,会立即返回nil。但是阻塞版本的b[lr]pop可以则可以阻塞,当然可以加超时时间,超时后也会返回nil。为什么要阻塞版本的pop呢,主要是为了避免轮询。举个简单的例子如果我们用list来实现一个工作队列。执行任务的thread可以调用阻塞版本的pop去获取任务这样就可以避免轮询去检查是否有任务存在。当任务来时候工作线程可以立即返回,也可以避免轮询带来的延迟。

1、lpush

在key对应list的头部添加字符串元素:

redis 127.0.0.1:6379> lpush mylist “world”(integer) 1redis 127.0.0.1:6379> lpush mylist “hello”(integer) 2redis 127.0.0.1:6379> lrange mylist 0 -11) “hello”2) “world”redis 127.0.0.1:6379>

在此处我们先插入了一个world,然后在world的头部插入了一个hello。其中lrange是用于取mylist的内容。

2、rpush

在key对应list的尾部添加字符串元素:

redis 127.0.0.1:6379> rpush mylist2 “hello”(integer) 1redis 127.0.0.1:6379> rpush mylist2 “world”(integer) 2redis 127.0.0.1:6379> lrange mylist2 0 -11) “hello”2) “world”redis 127.0.0.1:6379>

在此处我们先插入了一个hello,然后在hello的尾部插入了一个world。

3、linsert

在key对应list的特定位置之前或之后添加字符串元素:

redis 127.0.0.1:6379> rpush mylist3 “hello”(integer) 1redis 127.0.0.1:6379> rpush mylist3 “world”(integer) 2redis 127.0.0.1:6379> linsert mylist3 before “world” “there”(integer) 3redis 127.0.0.1:6379> lrange mylist3 0 -11) “hello”2) “there”3) “world”redis 127.0.0.1:6379>

在此处我们先插入了一个hello,然后在hello的尾部插入了一个world,然后又在world的前面插入了there。

4、lset

设置list中指定下标的元素值(下标从0开始):

redis 127.0.0.1:6379> rpush mylist4 “one”(integer) 1redis 127.0.0.1:6379> rpush mylist4 “two”(integer) 2redis 127.0.0.1:6379> rpush mylist4 “three”(integer) 3redis 127.0.0.1:6379> lset mylist4 0 “four”OKredis 127.0.0.1:6379> lset mylist4 -2 “five”OKredis 127.0.0.1:6379> lrange mylist4 0 -11) “four”2) “five”3) “three”redis 127.0.0.1:6379>

在此处我们依次插入了one,two,three,然后将标是0的值设置为four,再将下标是-2的值设置为five。

5、lrem

从key对应list中删除count个和value相同的元素。

count>0时,按从头到尾的顺序删除,具体如下:

redis 127.0.0.1:6379> rpush mylist5 “hello”(integer) 1redis 127.0.0.1:6379> rpush mylist5 “hello”(integer) 2redis 127.0.0.1:6379> rpush mylist5 “foo”(integer) 3redis 127.0.0.1:6379> rpush mylist5 “hello”(integer) 4redis 127.0.0.1:6379> lrem mylist5 2 “hello”(integer) 2redis 127.0.0.1:6379> lrange mylist5 0 -11) “foo”2) “hello”redis 127.0.0.1:6379>

count<0时,按从尾到头的顺序删除,具体如下:

redis 127.0.0.1:6379> rpush mylist6 “hello”(integer) 1redis 127.0.0.1:6379> rpush mylist6 “hello”(integer) 2redis 127.0.0.1:6379> rpush mylist6 “foo”(integer) 3redis 127.0.0.1:6379> rpush mylist6 “hello”(integer) 4redis 127.0.0.1:6379> lrem mylist6 -2 “hello”(integer) 2redis 127.0.0.1:6379> lrange mylist6 0 -11) “hello”2) “foo”redis 127.0.0.1:6379>

count=0时,删除全部,具体如下:

redis 127.0.0.1:6379> rpush mylist7 “hello”(integer) 1redis 127.0.0.1:6379> rpush mylist7 “hello”(integer) 2redis 127.0.0.1:6379> rpush mylist7 “foo”(integer) 3redis 127.0.0.1:6379> rpush mylist7 “hello”(integer) 4redis 127.0.0.1:6379> lrem mylist7 0 “hello”(integer) 3redis 127.0.0.1:6379> lrange mylist7 0 -11) “foo”redis 127.0.0.1:6379>

6、ltrim

保留指定key 的值范围内的数据:

redis 127.0.0.1:6379> rpush mylist8 “one”(integer) 1redis 127.0.0.1:6379> rpush mylist8 “two”(integer) 2redis 127.0.0.1:6379> rpush mylist8 “three”(integer) 3redis 127.0.0.1:6379> rpush mylist8 “four”(integer) 4redis 127.0.0.1:6379> ltrim mylist8 1 -1OKredis 127.0.0.1:6379> lrange mylist8 0 -11) “two”2) “three”3) “four”redis 127.0.0.1:6379>

7、lpop

从list的头部删除元素,并返回删除元素:

edis 127.0.0.1:6379> lrange mylist 0 -11) “hello”2) “world”redis 127.0.0.1:6379> lpop mylist“hello”redis 127.0.0.1:6379> lrange mylist 0 -11) “world”redis 127.0.0.1:6379>

8、rpop

从list的尾部删除元素,并返回删除元素:

redis 127.0.0.1:6379> lrange mylist2 0 -11) “hello”2) “world”redis 127.0.0.1:6379> rpop mylist2“world”redis 127.0.0.1:6379> lrange mylist2 0 -11) “hello”redis 127.0.0.1:6379>

9、rpoplpush

从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个list是空或者不存在返回nil:

redis 127.0.0.1:6379> lrange mylist5 0 -11) “three”2) “foo”3) “hello”redis 127.0.0.1:6379> lrange mylist6 0 -11) “hello”2) “foo”redis 127.0.0.1:6379> rpoplpush mylist5 mylist6“hello”redis 127.0.0.1:6379> lrange mylist5 0 -11) “three”2) “foo”redis 127.0.0.1:6379> lrange mylist6 0 -11) “hello”2) “hello”3) “foo”redis 127.0.0.1:6379>

10、lindex

返回名称为key的list中index位置的元素:

redis 127.0.0.1:6379> lrange mylist5 0 -11) “three”2) “foo”redis 127.0.0.1:6379> lindex mylist5 0“three”redis 127.0.0.1:6379> lindex mylist5 1“foo”redis 127.0.0.1:6379>

11、llen

返回key对应list的长度:

java基本数据类型总结 第4篇

-04-04Python BeautifulSoup中文乱码问题的2种解决方法

2014-01-01python中的对象拷贝示例 python引用传递

2013-02-02使用python检测手机QQ在线状态的脚本代码

2014-06-06Python中文件遍历的两种方法

-05-05Python 正则表达式操作指南

2013-03-03python的正则表达式re模块的常用方法

2014-06-06Python写的贪吃蛇游戏例子

2014-06-06测试、预发布后用python检测网页是否有日常链接

SQL语言中的数据4种基本类型 第5篇

SELECT:这条语句要求返回指定结果的数据集合;你可以用这一语句检索中保存的信息。

INSERT:这条语句用来给数据表增加新一行数据。

DELETE:该语句从你的中删除若干行数据。

UPDATE:该语句修改内的现有数据。

以上的这些语句都有各种各样的限定词和函数供你用来定义有关的数据集合,同时控制查询返回的结果集合。SELECT语句的选项最多。有许多种组合SELECT的查询选项,例如JOIN和UNION等。不过就我们目前来说,本文主要还是关注基本用途。

用SELECT语句检索保存的信息

为了获得中保存的信息就必须采用SELECT语句。其基本功能限制在针对单一数据表操作,当然,其他范围的构造也是有的。为了返回特定列所对应的所有数据行,你可以使用以下语句:

SELECT column1, column2 FROM table_name;

另外,使用通配符‚*‛可以从表中选出所有的列:

SELECT * FROM table_name;

你要愿意自己编码分析以上返回的结果当然也没问题,不过你完全可以采用方便的WHERE子句限制返回的结果集合,该子句可以让你为选择数据定义某些条件。以下查询就会返回‚column1‛数值等于3的所以数据行:

SELECT * FROM table_name WHERE column1 = 3;

除了‚=‛(等于)条件之外你还可以用到下列条件运算符:

表A

= 等于

<> 不等于

> 大于

< 小于

>= 大于或等于

<= 小于或等于

SQL 条件语句

另外,你还可以联合WHERE语句使用BETWEEN、LIKE等比较运算符以及AND和OR这类逻辑运算符。注意,OR语句是包含性的的。以下有一个例子组合了以上这些概念:

SELECT * FROM table_name WHERE((Age < 18)AND(LastName BETWEEN ‘Anderson’ AND ‘Miller’))OR Company LIKE ‘%School%’;

用自然语言来说,这条选择语句的含义是这样的:从数据表中选出年龄小于18岁而且姓氏在‚Anderson‛和‚MIller‛之间的或者其公司名称类中有‚School‛字样的数据行。

用INSERT语句加入新数据

使用INSERT语句可以创建新的数据行。如果你希望在某一行的某个字段中赋值则要用到UPDATE语句。

插入语句的语法如下:

INSERT INTO table_name(column1, column2, column3)

VALUES(‘data1’, ‘data2’, ‘data3’);

如果你想按照表内现有列的同一顺序插入所有的值,那么你不必指定列名,当然,从可读性考虑最好不要这样做。另外,如果你列出列名则不必要按照它们在中出现的顺序包括它们,只要你列出的值与它们一一对应即可。有些列你并没有为其输入新的信息所以你自然没有必要列出它们来。

一旦中有了数据要修改起来也与此很相似。

UPDATE语句和WHERE子句

UPDATE用来修改现有的值或行里的空字段,因此它必须在匹配现有的数据集合同时提供可接受的值。除非你真地想要修改所有数据行上的值,否则你必须使用WHERE子句。

UPDATE table_name SET column1 = ‘data1’, column2 = ‘data2’

WHERE column3 = ‘data3’;

你可以采用WHERE子句随意匹配任何一列,正在修改的一列都可以。这样会有助于你把某一特定的值修改为另一个值:

UPDATE table_name SET FirstName = ‘Shelley’

WHERE FirstName = ‘Shelly’ AND LastName = ‘Doll’;

小心DELETE语句

DELETE语句会从的数据表中删除整行。如果你仅仅想删除单一的字段则应该使用UPDATE语句把它修改为代表应用程序中的NULL的其他空值。一定要小心使用带WHERE子句的DELETE语句,否则你可能会遭遇清空全部数据表的风险。

DELETE FROM table_name WHERE column1 = ‘data1’;

一旦你中删除某一行数据就不可再后悔了,因此一般来说,最好在数据表中包括一名为‚IsActive‛的列或类似的指示信息,这样你就可以把该列数据设置为零表示数据禁用。只有在你确信不再需要受到影响的信息之后你才可以用DELETE语句。

小结

java基本概念总结 第6篇

1、对象的初始化

(1)非静态对象的初始化

在创建对象时,对象所在类的所有数据成员会首先进行初始化。

基本类型:int型,初始化为0。

如果为对象:这些对象会按顺序初始化。

※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。

构造方法的作用就是初始化。

(2)静态对象的初始化

程序中主类的静态变量会在main方法执行前初始化。

不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时

未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。

2、继承时,对象的初始化过程

(1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。

(2)主类静态成员的初始化。

(3)主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造

方法前,先进行对此超类进行非静态对象的初始化。

(4)主类非静态成员的初始化。

(5)调用主类的构造方法。

3、关于构造方法

(1)类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。

(2)在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是

第一条语句。

4、有关public、private和protected

(1)无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类

在同一文件夹中,c.两个类在同一软件包中。

(2)protected:继承类和同一软件包的类可访问。

(3)如果构造方法为private,那么在其他类中不能创建该类的对象。

5、抽象类

(1)抽象类不能创建对象。

(2)如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。

(3)继承抽象类的类在类中必须实现抽象类中的抽象方法。

(4)抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。

(5)间接继承抽象类的类可以不给出抽象方法的定义。

6、final关键字

(1)一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。

(2)常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化。

(3)final修饰的方法不能被重置(在子类中不能出现同名方法)。

(4)如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据 成员可为final也可不是。

7、接口interface(用implements来实现接口)

(1)接口中的所有数据均为 static和final即静态常量。尽管可以不用这两个关键字修饰,但必须给常量赋初值。

(2)接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。

(3)如果使用public来修饰接口,则接口必须与文件名相同。

8、多重继承

(1)一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗

号分隔。

(2)接口之间可多重继承,注意使用关键字extends。

(3)一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口

继承的接口的方法,接口中的所有方法均须在类中实现。

9、接口的嵌入

(1)接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不

能访问。

(2)嵌入接口中的接口一定要为public。

10、类的嵌入

(1)类可以嵌入另一个类中,但不能嵌入接口中。

(2)在静态方法或其他方法中,不能直接创建内部类对象,需通过手

段来取得。

手段有两种:

class A {

class B {}

B getB(){

B b = new B();

return b;

}

}

static void m(){

A a = new A();

A.B ab = a.getB();// 或者是 A.B ab = a.new B();

}

(3)一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动

被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。

接上例:

class C extends A.B { C(){

new A().super();// 这一句就实现了对内部类构造方法的调用。

}

}

构造方法也可这样写:

C(A a){

a.super();

} // 使用这个构造方法创建对象,要写成C c = new C(a);a是A的对象。

11、异常类

JAVA中除了RunTimeException 类,其他异常均须捕获或抛出。JAVA一直是很多人喜爱的一种编程语言,在这里北大青鸟徐东校区的老师希望各位努力并快乐的学习这门语言。学习JAVA需要多看SUN公司提供我们的资料信息,了解常用类的属性和方法。我发现我们有很多同学在用常用类的时候,经常会把类里面的方法和自定义的方法搞混。记得有一位老师说过“学习要抱有一种钻研的态度”。我对这句话的理解是当我们学习到一个新的知识点的时候,需要不断理解和消化。这可能是一个长期的过程,不能抱有一种急于求成的态度。以下内容是北大青鸟老师整理的一些JAVA基础:

一、SDK和JDK的区别 SDK是软件开发工具包,JDK是SDK的一种,其实它是JAVA SDK。JDK在早期的版本中也是叫SDK,在1.2版本以后才叫JDK。

二、J2EE、J2SE、J2ME区别

J2EE:JAVA2平台的企业版,主要应用于WEB和大型企业的开发。

J2SE:JAVA2平台的标准版,学习和一般的开发。它包含于J2EE。

J2ME:JAVA2平台的微缩版,主要应用于电子设备(手机)方面,它包含有J2SE的核心部分之外,还有一个专业的类。

三、JVM的运行机制类加载→类校验→类执行

四、JAVA、JAVAC、用法

JAVA:JAVA解释器用于执行JAVA字节码。它所执行的是一个类并不是一个文件,所以后面类的名字区分大小写。

JAVAC:JAVAC解释器用于将JAVA源代码编译字节码。

五、JAVA标识符

1、标识符由数字、字母下划线“_”或“$”符号组成。

2、标识符必须以字母、下划线“_”或“$”符号开头。

3、不能使用JAVA关键字。

4、字母区分大小写

六、数据类型原始数据类型数值类型

l BYTE

l 整型:SHORT、INT、INT l 浮点:FLOAT、DOUBLE 2 BOOLEAN类型引用数据类型数组类接口

七、变量

变量可分为类变量、局部变量、方法变量。

类变量在定义时就有默认值,数值类型的默认为0,CAHR的默认a,BOOLEAN默认FALSE。

方法变量中没有默认值,需要赋值才能使用。

八、类和对象的区别

类是对象的模板,对象是类的特例

类是抽象的,客观上并不存在的对象是具体的,是客观存的九、类的构造方法

构造方法具有和类相同的名字,它是一个没有返回值的方法。有隐式

构造方法和自定义构造方法两种。JVM在没有自定义造构方法时提供一个没有参数也没有方法主体的默认构造方法。但是如果有自定义的构造方法时,JVM不再提供默认的构造方法。如果在类的实例化是需要用默认构造方法时,必须显示的定义。

十、方法的重载

可以对构造方法或者自定义的方法进行重载,对方法的重载必须满足以下三个条件:

1、参数个数不同

2、参数类型不同

3、参数顺序不同

十一、面向对象的特性

1、封装

2、继承

3、多态

十二、继承的特性

继承允许重用现有的类来构造新类的机制。在继承中具有如下特性:

1、默认继承Object

2、单继承,只能有一个父类

3、子类继承父类除private以外的全部成员和方法。

十三、方法的重写

构成方法重写的条件:

1、两个继承关系的类里

2、方法名、返回值、参数必须一致。

十四、静态(变量、方法、块)

静态类型的变量或方法都是属于类的,并不是属某个具体对象的。所以也称类变量和类方法,所有对象共享一份类变量。定义类变量或类方法的关键字是static。静态块是在类第一次 加载时执行。它的作用是初始化类变量成员。

十五、抽象类

抽象类是具体抽象方法的、不可以实例化对象的类。构成抽象类的条件:

a)具有一个以上的抽象方法。

b)继承一个抽象类,但没有实现全部的抽象方法。

c)继承一个接口,没有实现全部的抽象方法。

十六、异常

Error:内部错误,不期望用户捕获的一种错误。

try语句:try句子里面主要是放置要监控的程序句子

catch:以合理的方式捕获和处理异常,主有try语句出错才会执行。

finally:释放资源,不管try里面的语句是否出错都要执行。

throw:手动引发异常

throws:由方法引发的异常

多层捕获:异常子类一定要位于异常父类之前。最后一个catch块要用Exception捕获,以便捕获到所有异常。执行其中一条catch语句之后,其它的catch将被忽略。

《JAVA基础》基本概念总结

1、在JAVA中所有万物皆对象,所有的代码都要写在一个类中,在类中主要包含属性(变量)和方法(函数),其它代码必须写在某一个方法中,方法与方法之间是平行的,不能在方法中定义方法。

2、如果一个类名使用了public修饰符,则包含该类的JAVA文件名必须该类名一样,一个JAVA文件中只能有一个类前面可以用public修饰符。

3、类是客观实体的抽象,包含属性(该类的数据),和对属性进行操作的方法,为了避免用户对类的属性进行误操作,我们一般把类的属性定义为私有的,并提供相应的get与 set方法去引用和修改这些属性。

4、类的属性与方法可以使用static修饰符,用static修饰的属性与方法是该类的所有对象所共享的,它们可以直接通过类名去引用,在静态方法中只能引用该类的静态变量与静态方法,因为非静态的属性与方法在该类没有被实例化之前是不存在的,即没有相应的执行空间,为了使用的方便,我们可以把不依赖于类的属性(即在方法中不对类的属性进行操作)的方法定义为静态的。

5、构造函数是当一个类被实例化时执行的一段代码,它决定了该类被实例化后的状态,其名称与相应的类名一样,并且不写返回值的类型,我们一般在构造函数中对类的属性进行初始化。当不写构造函数时,系统会给我们提供一个不带参数的空构造函数,如果我们写了一个带参的构造函数,系统就不再提供不带参的构造构数了。

6、为了引用一个类中定义的非静态属性与方法,我们需要实例化一个该类的对象,通过该对象去引用相应的方法。(这是我们实例化一个类的最直接的原因)

7、继承可以实现代码的复用,当子类继承了父类之后,子类就拥有了父类中定义的非私有属性与方法。

8、子类对象可以直接赋值给父类变量,但赋值后就不能通过父类对象去引用在子类中定义的方法了。如果子类覆盖了父类中的方法,则

当子类对象赋值给父类后,通过父类去引用该方法时,执行的是子类中该方法的代码。

9、为了强制子类覆盖父类中的某一方法,可以在父类中将该方法定义为抽象的,如果一个类中含有抽象方法,则该类必须被定义为抽象的,抽象类不能被实例化。

10、接口是一种特殊的抽象类,在接口中定义方法全是抽象的,它定义了一种上层规则或协议,使实现该接口的不同类之间可以交互。

11、接口与抽象类可以定义变量,可以作为函数的参数,但传递给它的只能是实现该抽象类或接口中所有抽象方法的类的对象。

12、在JAVA中一个类一次只能继承一个类,但可以实现多个接口,这是接口存在的一个非常重要的原因。

13、在程序中,有些代码是不安全的,即在执行的过程中有可能会产生错误,为了处理这些错误,在JAVA中引入了异常处理机制,异常的处理分为抛出(throws)和处理(try…catch..),我们一般在写给其它地方用的方法中将有可能产生的异常抛出,而在main方法中,或实际使用时进行处理。

JAVA四种基本排序的总结 第7篇

一 插入法:遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。交换是相邻遍历移动,双重循环控制实现.这种排序法属于地头蛇类型,在我的地牌上我要把所有的东西按一定的顺序规整,过来一个,规整一个.处理代码如下: public void sort(int[] data){ int temp;

for(int i=1;i〈data.length;i++){ for(int j=i;(j〉0)&&(data[j]〉data[j-1]);j--){

temp=date[j];data[j]=data[j-1];data[j-1]=temp;} } } 二冒泡法:比较容易,它的内层循环保证遍历一次后,集合中最小(大)元素出现在它的正确位置,下一次就是次小元素。。该方法在集合分布的各种情况下交换移动的次数基本不变,属于最慢的一种排序。实现也是双重循环控制。这种排序法属于过江龙,就是要找到极端,但是过奖龙也有大哥,二哥等,所以他们只能是大哥挑了二哥挑.处理代码如下: public static int [] maopao(int[] data){ int temp;

for(int i=0;i〈data.length-1;i++){ for(int j=i+1;j〈data.length;j++〉{ if(data[i]〈data[j]〉{ temp=data[i];data[i]=data[j];data[j]=temp;} 〉 〉

return data;

三选择法:该方法只是通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作,类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后,我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.public static void xuanze(int[] data){ int temp;

for(int i = 0;i 〈 data.length;i++〉 { int lowIndex = i;

for(int j = data.length-1;j)i;j--){ if(data[j])data[lowIndex]){ lowIndex = j;} } temp=data[i];

data[i]=data[lowIndex];data[lowIndex]=temp;} } 四 Shell排序:

它是对插入排序的一种改进,是考虑将集合元素按照一定的基数划分成组去排序,让每一组在局部范围内先排成基本有序,最后在进行一次所有元素的插入排序。public void sort(int[] data){ for(int i=data.length/2;i)2;i/=2){ for(int j=0;j〈i;j++〉{ insertSort(data,j,i);} 〉

insertSort(data,0,1);〉

private void insertSort(int[] data, int start, int inc){ int temp;

java基本数据类型总结 第8篇

-07-07mysql 常用数据库语句 小练习

-04-04MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

2011-02-02MySQL 4.0 升级到mysql 5.0的方法

2011-11-11MySQL DBA 常用手册小结

-05-05解析SQLite中的常见问题与总结详解

2013-04-04跟着hsp一步步学mysql优化的方法

2013-12-12centos下mysql主从复制设置详解

-03-03不重启Mysql修改root密码的方法

java基本数据类型总结 第9篇

大家好,最近总结了一下作为Java语言初学者,需要掌握的一些基本知识,和一个Java程序员所具备的基本素质,与大家共同分享,不足之处望大家多提宝贵意见。

1、Java概述

 1995年5月23日开始,原名为Oak,最先开始用于一个绿色项目开发(一次编译随处使用),后来更名为Java。

 09年SUN公司被Oracle收购,先后经历1.0、1.1、1.2、1.3、1.4、5、6、7、8等版本。 Java SE 标准开发

Java EE 企业级开发

Java ME 移动开发

2、JDK和JRE  JDK:Java Development Kit(Java开发工具集)

Java语言与JDK的关系:足球比赛与足球场

 JRE:Java Runtime Environment 如果客户要使用Java语言平台开发的软件,就必须安装JRE。

它包含:开发技术、用户界面工具箱、整合类库、基础类库和Java虚拟机  区别:JDK可以给开发者提供开发环境,也可以运行程序;JRE不能开发Java程序,只能运行Java程序,客户通常只安装JRE不安装JDK。 Java平台分为四个部分: 操作系统:Linux、Macintosh、Solaris、Windows,.etc 2 JVM(Java虚拟机)

虚拟的操作系统,不同的操作系统虚拟机也不同,它只能识别class文件.3 JDK(包含JRE、工具程序与API)4 Java语言

 几个专有名词解释:

JDBC:Java DataBase Connection(Java数据库连接):将数据库的数据展示到前台页面

JNDI:Java Naming Directory Interface(Java命名目录接口)RMI:Remot Method Invoke(远程方法调用):跨IP、跨进程的调用。

开发者向客户提供自己的ip、端口、方法名称,客户拿到了这些则可以远程访问开发者的服务,最终能够获取到想要的东西。rmi://10.7.210.616712/basketballInfo

3、JVM(了解)

 概述:Java Virtual Machine(Java虚拟机):可以通过Java虚拟机来实

磨砺营IT教育版权所有

http://

现跨平台。

我们可以把JVM看做操作系统,他只能运行.class文件

 不跨平台:在Windows系统开发的程序无法再其他操作系统上运行,不能实现跨平台。

HelloWorld 0101110 Windows操作系统

0101011 Solaris操作系统

 跨平台:一次编译,到处运行。好比一份用当地语言编写的文档(俄文),先翻译成英文,在由英文翻译成客户所在国家的语言

 JVM作用过程:源程序—(编译)—> 字节码(.class)—(JVM把字节码进行解释)—> 操作系统能理解的机器语言  了解两点: 他是一个操作系统,专门执行class文件 有了它才能够实现跨平台;不同的操作系统,它的虚拟机不一样。

4、写出第一个Java程序(重点)

 步骤:安装jdk配置环境变量(连接用户和操作系统)检查是否配置完成(win+R,输入cmd,输入java –version,能够显示Java版本信息说明安装成功)

 编程工具:记事本、写字板、EditPlus、Eclipse等。

输入javac命令:编译程序,使之创建一个.class文件(字节码)输入java命令:解释执行程序(执行jdk文件夹bin目录下的java.exe文件,即请求Java虚拟机来执行某字节码)

5、Java标识符命名规范(掌握)

定义:可以自定义的字符序列叫标识符

类名称也叫作标识符,类名称必须和Java源文件名称前缀保持一致。命名规范: 类名称首字母必须大写,如果有多个单词,每个单词首字母大写; HelloWorld 2 标识符可以使用大小写字母(一般全部用大写字母)开始,也可以使用$(美元符号)或_(下划线)开始; 命名遵循“见名知意”的规则; 命名遵循“驼峰命名法”的规则(即有多个单词时,每个单词首字母大写)。

磨砺营IT教育版权所有

http://

6、注释

单行注释://+内容(放在代码的上面一行)

//定义一个整数类型的变量,其名称为height int height; //给变量赋值:

//使用 =(赋值运算符)给变量赋值

//赋值运算符:将(赋值运算符)右边的数值赋给左边的变量 height = 173;

 多行注释/块注释:

注意:行注释只能写在方法里面,用来注释变量、分支、循环

多行注释用来注释类、方法、属性

7、变量(重点)

定义:驻留在内存中的一个存储单元(临时)如何使用变量来完成计算: 1 声明一个变量

语法: 数据类型 变量名;int height;2 给变量赋值

语法:

变量名 = 值;height = 173;3 声明变量和赋值可以放在一行,即:数据类型 变量名 = 值;int weight = 86;注意:变量使用之前,一定要为其赋初始值(初始化)。4 如何向控制台输出变量 System.out.println(height);System.out.println(height);

磨砺营IT教育版权所有

http:// 如何使用变量改变数值 weight = weight + 1;变量有哪些数据类型:

数据类型分为两大类:基本数据类型和引用数据类型。基本数据类型: 1 整数类型:

int(整形): 32bit或者4byte,最大值为2的31次方-1,最小值为负2的31次方

short(短整形): 16bit或者2byte,最大值为2的15次方-1,最小值为负2的15次方

long(长整形): 64bit或者8byte,最大值为2的63次方-1,最小值为负2的63次方

注意:所有整数的默认字面量(在编译器能够知道的数值)都为int类型,所以long类型的变量值需要在后面一定要加上一个“L”(可以用小写,但是规范一般用大写。)

byte(字节类型): 8bit或者1byte,最大值为2的7次方-1,最小值为负2的7次方

注意:定义整数尽量使用int类型,如果空间不够再使用long类型,不要使用short、byte来定义整数。小数类型:

float(单精度浮点型): 32bit或者4byte,科学计数法 float pi = 3.14F;注意:所有小数的默认字面量(在编译器能够知道的数值)都为double类型,所以float类型的变量值需要在后面一定要加上一个“F”(可以用小写,但是规范一般用大写。)

double(双精度浮点型):64bit或者8byte,科学计数法 注意:定义小数优先使用double类型,避免不必要的错误。3字符类型:

char(字符类型): bit16或者2byte,只能存储单个字符(2byte,也可以存储汉字或字母)

char sex = ‘男’;注意:只能存储单个字符,必须以单引号开始,单引号结束。

磨砺营IT教育版权所有

http:// 布尔类型:

boolean(布尔类型):只能存储两个值——true/false boolean bool = true;经常使用的数据类型有:int、long、double、bollean 几乎不用的数据类型有:short、float、char 很少用到的数据类型有:byte(第五周讲)变量的命名规范 变量名只能以大小写字母、下划线、美元符号开头,但是可以有大小写、下划线、美元符号、数字组成; 一般使用小写字母开头来定义变量; 如果有多个单词采用驼峰命名法,从第二个单词开始首字母大写; int tomAge = 18 4 变量名区别大小写; 变量名长度不受限制,但是一般变量名称长度不要超过15个字符。6 如果超过15个字符,去掉元音字母保留辅音字母

7、运算符

1、算数运算符

+-* / % 其中,%叫做取模运算符(取余数运算符)。21 / 5 = 4 21 % 5 = 1 在Java世界中,两个整数相除,结果必然是一个整数

2、赋值运算符

= :将运算符右边的数值赋给左边的变量 注意:右边的数值也可以是变量

3、  比较运算符 > < >= <= == 比较两个数值(是否相等)

磨砺营IT教育版权所有

http://

!= 不等于

比较运算符计算的结果一定是一个boolean数据类型 boolean calcResult = 3 > 5;System.out.println(calcResult);则输出false

4、++--放前面叫前向自增/自减:先计算再赋值 放后面叫后向自增/自减:先赋值再计算

int a = 3;int b = 2;int result =(a++)*(--b)+(--a)/(b ++);输出为3*1+3/1=6

5、逻辑运算符(重点)自增和自减(面试会考察)

逻辑运算符必须要配合boolean数据类型一起使用  && 与:

使用场景:

条件1 && 条件2 多个条件都为真则为真。1 int score1 = 80;int score2 = 90;boolean gift = score1 >80 && score2 >80;System.out.println(gift);2 int score1 = 80;int score2 = 90;boolean result1 = score1 >80;boolean result2 = score2 >80;boolean gift = result1 && restult2;

磨砺营IT教育版权所有

http://

System.out.println(gift);两个例子输入结果均为false。 || 或

使用场景:

条件1 || 条件2 多个条件有一个为真,则为真。!非

使用场景:!条件 非真为假,非假为真。

6、位运算符(重点)

特征:将两个整数转成二进制再针对每个bit位逐个进行上下比较的位运算  & 位与:上下结果都为1则结果是1,否则结果是0 10010 8 01010 10 00010 2  | 位或:上下只要有1个1结果就是1,否则是0 10010 8 01010 10 11010 26  ^ 位异或:上下相同为0,否则为1 10010 8 01010 10

磨砺营IT教育版权所有

http://

11000 24 拓展1: int有32位

00000000 00000000 00000000 00000010 最高位 次高位 次低位 最低位

第32位也叫作符号位,1代表负数,0代表正数。拓展2:

~ 取反 先+1再取反

int value = ~10 则得到-11 00001010 1110101

7、 位移运算符

<< 左位移:左位移多少位,就在最右边补多少个0 将10进制数2,左位移3位 2 << 3 00010则去掉前3位,在后面加3个0,变成了10000  >> 右位移:右位移多少位,就在最右边去掉多少个位

将10进制数17,左位移3位 17 >> 3 10001则去掉后3位,在前面加3个0,变成了00010

java基本数据类型总结 第10篇

importjava.io.*;

import java.sql.*;

public class ToOracle {

public static void main(String[] args) {

int n = 10;//每个线程执行的个数

//System.out.println(“start action!!!!!!”);

ToOracle ac = new ToOracle();

ThreadRun[] testrun = new ThreadRun[21];

for (int i = 1; i <= 21; i++) {

testrun[i] = ac.new ThreadRun();

testrun[i].TRun(n);

System.out.println(“线程” + i + “已经启动”);

}

//testrun[1] = ac.new ThreadRun();

//testrun[1].TRun(10);

for (int i = 1; i <= 21; i++) {

testrun[i].TExit();

}

}

class ThreadRun {

String blobname = “D:eclipsetesttest1.txt”; //blob文件名

String clobname = “D:eclipsetesttest2.txt”; //clob文件名

String in = “insert into ”;

String in1 = “(order_id,ric_code,siz,price,trade_datetime,status,testblob,testclob) values(9,´asdfjkl´,21,123.34567,sysdate,´nill逆耳´,?,?)”;

String tablename = “orders1”;

String sqlstr = “”; // sql 语句

ThreadUseExtends thread = new ThreadUseExtends(blobname, clobname,

sqlstr);

public void TRun(int n) {

sqlstr = in + tablename + in1;

thread = new ThreadUseExtends(blobname, clobname, sqlstr);

//thread.start();

thread.run(n);

/*

* int n=10; for (int i = 1; i <= 21; i++) { while(0

* in + tablename + in1; thread[i] = new ThreadUseExtends(blobname,

* clobname, sqlstr[i]); thread[i].start(); n--; }

* System.out.println(“线程” + i + “已经启动”); }

*/

//System.out.println(“线程1已经启动”);

}

public void TExit() {

thread.interrupt();

}

class ThreadUseExtends extends Thread {

String filename1;//blob filename

String filename2;//clob filename

String str;

//构造函数要有(blob文件名,clob文件名,sql语句)

public ThreadUseExtends(String name1, String name2, String sqlstr) {

filename1 = name1;

filename2 = name2;

str = sqlstr;

}

ReadFiles r1 = new ReadFiles();

public void run(int n) {

while (n > 0) {

try {

String url = “jdbc:oracle:thin:@193.9.200.111:1521:ora9i”;

String login = “system”; // use your login here

String password = “ti”; // use your password here

Class.forName(“oracle.jdbc.driver.OracleDriver”);

Connection con = DriverManager.getConnection(url,

login, password);

String testLong = r1.ReadFile(filename1);

String testLong1 = r1.ReadFile(filename2);

byte[] ba = testLong.getBytes();

System.out.println(“str=” + str);

//String strSql = str; //“insert into

// orders(order_id,ric_code,siz,price,trade_datetime,status,testblob,testclob)

// values(8,´asdfjkl´,21,123.34567,sysdate,´nill逆耳´,?,?)”;

PreparedStatement stm = con.prepareStatement(str);

stm.setBytes(1, ba);

StringReader test = new StringReader(testLong1);

stm.setCharacterStream(2, test, testLong.length());

stm.execute();

stm.close();

con.close();

} catch (Exception e) {

e.printStackTrace();

}

n--;

}//while

}//run

}//ThreadUseExtends class

// ReadFiles class for read text!!

class ReadFiles {

public ReadFiles() {

}

//ReadFile method,read file

public String ReadFile(String FileName) {

String Name = FileName;

String File = “”;

try {

FileReader ReadF = new FileReader(Name);//读文件

BufferedReader HuanChong = new BufferedReader(ReadF);//文件读缓冲.

try {

File = HuanChong.readLine();

} catch (IOException e1) {

// TODO 自动生成 catch 块

e1.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}

//System.out.println(“文件:”+File);

return File;

}

}//ReadFiles class

}//ThreadRun class

}//ToOracle class

Java开发工程师的基本职责 第11篇

1、在软件项目经理的领导下,配合完成程序设计和开发。

2、按产品需求进行软件设计和编码实现,确保安全、质量和性能。

3、参与内部测试、部署、实施等工作。

4、分析并解决软件开发过程中的问题。

任职要求:

1、大学本科以上学历,计算机相关专业,有一年以上JAVA开发经验,并可以出差工作;

2、Java基础扎实,熟悉面向对象思想,精通编程、调试和相关技术;

3、精通J2EE架构、SpringBoot,SpringCloud,Hibernate、MyBatis和基于MVC的开发模式,熟练使用Eclipse或MyEclipse开发工具;

4、熟悉tomcat、jboss中的一种;了解Linux操作系统,熟悉MySQL数据库;

5、熟悉web前端技术,熟悉springMVC、Ajax、HTML、DIV/CSS,熟悉JavaScript或EXT、Jquery;

6、可以单独对已有的系统进行维护,工作认真细致负责,有良好的自学能力,独立思考能力,能够在短时间内学习并应用新技术;

java基本数据类型总结 第12篇

1、根据公司业务发展战略规划,负责系统的规划和技术架构搭建。

2、协助业务方梳理业务需求,提供业务规划方案、架构设计方案,并能根据方案展开研发工作。

3、负责核心代码编写,技术难点攻关。

4、制订和review技术规范。

5、指导研发人员的研发任务,解决项目中遇到的技术难题。

6、配合上级完成相关任务目标。

岗位要求:

1、计算机或相关专业大专以上学历。

2、5年以上的J2EE开发工作经验;精通面向对象设计思想,具有扎实的Java编程功底和良好的编码规范。

3、熟练使用spring、springboot、mongo、memcache、redis、websocket、RabbitMQ、mybatis,beetlsql等技术进行框架搭建,对于常用的开源框架,能了解到它的原理和机制 。

4、熟悉分布式系统的设计和应用,熟悉分布式、权限、单点登录、缓存、消息等机制,能对分布式常用技术进行合理应用,解决问题。

5、熟悉Tomcat、nginx等多种应用和WEB服务器的配置。

6、精通SQL,掌握MYSQL,熟悉oracle;。

7、掌握多线程及高性能的设计与编码及性能调优。

8、工作主动性强,耐心细致,有责任心;能承受一定压力,有良好的沟通能力与团队合作精神。

上一篇:二上语文雪孩子教案下一篇:提高审计报告质量 有效规避审计风险