关于java中的if语句的文字专题页,提供各类与java中的if语句相关的句子数据。我们整理了与java中的if语句相关的大量文字资料,以各种维度呈现供您参考。如果java中的if语句未能满足您的需求,请善用搜索找到更适合的句子语录。
在java中Synchronized的用法
synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是*时说的同步方法和同步语句块。如果再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。下面是小编收集的在java中Synchronized的用法,希望能帮到你。
在进一步阐述之前,我们需要明确几点:
A.无论synchronized关键字加在方法上还是对象上,它取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问。
B.每个对象只有一个锁(lock)与之相关联。
C.实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。
接着来讨论synchronized用到不同地方对代码产生的影响:
假设P1、P2是同一个类的不同对象,这个类中定义了以下几种情况的同步块或同步方法,P1、P2就都可以调用它们。
1. 把synchronized当作函数修饰符时,示例代码如下:
Public synchronized void methodAAA()
{
//….
}
这也就是同步方法,那这时synchronized锁定的是哪个对象呢?它锁定的是调用这个同步方法对象。也就是说,当一个对象P1在不同的线程中执行这个同步方法时,它们之间会形成互斥,达到同步的效果。但是这个对象所属的Class所产生的另一对象P2却可以任意调用这个被加了synchronized关键字的方法。
上边的示例代码等同于如下代码:
public void methodAAA()
{
synchronized (this) // (1)
{
//…..
}
}
(1)处的this指的是什么呢?它指的就是调用这个方法的对象,如P1。可见同步方法实质是将synchronized作用于object reference。――那个拿到了P1对象锁的线程,才可以调用P1的同步方法,而对P2而言,P1这个锁与它毫不相干,程序也可能在这种情形下摆脱同步机制的控制,造成数据混乱。
2.同步块,示例代码如下:
public void method3(SomeObject so)
{
synchronized(so)
{
//…..
}
}
这时,锁就是so这个对象,谁拿到这个锁谁就可以运行它所控制的.那段代码。当有一个明确的对象作为锁时,就可以这样写程序,但当没有明确的对象作为锁,只是想让一段代码同步时,可以创建一个特殊的instance变量(它得是一个对象)来充当锁:
class Foo implements Runnable
{
private byte[] lock = new byte[0]; // 特殊的instance变量
Public void methodA()
{
synchronized(lock) { //… }
}
//…..
}
注:零长度的byte数组对象创建起来将比任何对象都经济――查看编译后的字节码:生成零长度的byte[]对象只需3条操作码,而Object lock = new Object()则需要7行操作码。
3.将synchronized作用于static 函数,示例代码如下:
Class Foo
{
public synchronized static void methodAAA() // 同步的static 函数
{
//….
}
public void methodBBB()
{
java中length和length()的区别
泉水,奋斗之路越曲折,心灵越纯洁。以下是小编为大家搜索整理的java中length和length()的区别的相关内容,希望能给大家带来帮助!
length是属性,一般集合类对象拥有的属性,取得集合的大小。 例如:数组.length就是取得数组的长度。
length()是方法,一般字符串类对象有该方法,也是取得字符串长度。 例如:字符串.length();
java中的length属性和length()方法和size()方法的区别
1.java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.
2.java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.
3.java中的'size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!
这个例子来演示这两个方法和一个属性的用法
public static void main(String[] args) {
String []list={"ma","cao","yuan"};
String a="macaoyuan";
System.out.println(list.length);
System.out.println(a.length());
List
String s1 = "hello";
StringBuffer s2 = new StringBuffer(s1);
s2.append(" world");
System.out.println(s2.toString());
System.out.println(s2);
最后两句都是输出hello world,toString()方法到底有什么作用?
不是“许多对象都有这个方法”,而是“所有对象都有这个方法”,因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法
总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法
toString是Object类的方法,所有类都从Object类继承。如果你定义的类没有覆盖toString方法,则对象在调用toString方法时用的是Object类toString方法,返回的是“类名@hashcode".
System.out.println(obj)在参数是一个对象时,会首先调用该对象的toString方法。
而String类和StringBuffer类都覆盖了toString方法,都是返回字符串。
所以带不带toString效果是一样的。
Java
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Java中创建对象的5种方法
作为Java开发者,我们每天都会创建大量的对象,但是,我们总是使用管理依赖系统(如Spring框架)来创建这些对象。其实还有其他方法可以创建对象,那么下面小编整理了Java中创建对象的5种方法相关内容,欢迎阅读学*。
Java中创建对象的5种方法
1.使用new关键字
这是最常见的创建对象的方法,并且也非常简单。通过使用这种方法我们可以调用任何我们需要调用的构造函数。
Employee emp1 = new Employee();
0: new #19 // class org/programming/mitra/exercises/Employee
3: dup
4: invokespecial #21 // Method org/programming/mitra/exercises/Employee."":()V
2.使用class类的newInstance方法
我们也可以使用class类的newInstance()方法来创建对象。此newInstance()方法调用无参构造函数以创建对象。
我们可以通过newInstance() 用以下方式创建对象:
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee").newInstance();
或者
Employee emp2 = Employee.class.newInstance();
51: invokevirtual #70 // Method java/lang/Class.newInstance:()Ljava/lang/Object;
3.使用构造函数类的 newInstance方法
与使用class类的newInstance()方法相似,java.lang.reflect.Constructor类中有一个可以用来创建对象的newInstance()函数方法。通过使用这个newInstance()方法我们也可以调用参数化构造函数和私有构造函数。
Constructor constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
111: invokevirtual #80 // Method java/lang/reflect/Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
这些 newInstance() 方法被认为是创建对象的反射手段。实际上,内部类的newInstance()方法使用构造函数类的 newInstance() 方法。这就是为什么后者是首选并且使用不同的框架如Spring, Hibernate, Struts等。
4.使用clone方法
实际上无论何时我们调用clone() 方法,JAVA虚拟机都为我们创建了一个新的对象并且复制了之前对象的内容到这个新的对象中。使用 clone()方法创建对象不会调用任何构造函数。
为了在对象中使用clone()方法,我们需要在其中实现可克隆类型并定义clone()方法。
Employee emp4 = (Employee) emp3.clone();
162: invokevirtual #87 // Method org/programming/mitra/exercises/Employee.clone ()Ljava/lang/Object;
5.使用反序列化
无论何时我们对一个对象进行序列化和反序列化,JAVA虚拟机都会为我们创建一个单独的对象。在反序列化中,JAVA虚拟机不会使用任何构造函数来创建对象。
对一个对象进行序列化需要我们在类中实现可序列化的接口。
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
261: invokevirtual #118 // Method java/io/ObjectInputStream.readObject:()Ljava/lang/Object;
正如我们在以上的字节代码片段中所看到的,除第一种被转换为一个新的.函数和一个 invokespecial 指令以外,其它4种方法都被调用并转换为invokevirtual。
示例
让我们来看看准备创建对象的 Employee 类:
class Employee implements Cloneable, Serializable {
private static final long serialVersionUID = 1L;
private String name;
public Employee() {
System.out.println("Employee Constructor Called...");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
final int prime = 31;
Java语言的优点有哪些
Java语言最大的优点是它的跨*台性。以下是小编整理的Java语言的优点有哪些相关内容,欢迎阅读学*!
Java语言最大的优点是它的跨*台性。一次编写,到处运行。能始终如一的在任何*台上运行,使得系统的移植、*台的迁移变得十分容易。其他优点如下。
简单易学:Java语言的语法与C语言和C++语言很接*,使得大多数程序员很容易学*和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧,是很容易学*的。
面向对象:Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implement)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
安全性:Java语言不支持指针,只有通过对象的实例才能访问内存,使应用更加安全。
可移植性:这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
对对象技术的全面支持和*台内嵌的API使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
优点
1、简单易学
首先Java是一个面向对象的编程语言,容易理解。而且略去了多重加载、指针等难以理解的概念。并且实现了自动垃圾回收,大大简化了程序设计。
其次Java学*资料较多,通过百度搜索就可以找到很多Java的学*视频和学*资料,有这些学*资料,入门足矣。但是要想学好Java语言,获得10万高薪,还是得找个像九尾狐这样专业的培训机构。
2、跨*台
跨*台是Java最大的优势。Java运行在JVM(Java虚拟机)上,在任何*台只要安装了JVM。Java就可以运行。它架构在操作系统之上,屏蔽了底层的差异。真正实现了“Write once,run anywhere”。
3、安全
Java中没有指针,这样就没有办法直接访问内存了。另外Java也不容易出现内存泄露。
4、多线程
Java内置对多线程的支持,可以方便地在程序中实现多线程的功能。不像其他不支持多线程的语言,需要调用操作系统的多线程功能才能完成多线程的实现。
5、有丰富的类库
经过10多年的积累和沉淀,出现了很多优秀的开源社区,如Apache和Spring。这些优秀的社区提供了很多非常好的框架,借助这些框架可以使我们不用去关注Java底层的开发,而只需关注业务的实现。
6、使用广泛
Java语言被大多数大公司所认可,据统计,80%以上的高端企业级应用都使用JAVA*台(电信、银行等)。JAVA是成熟的产品,已经有20年的历史。Amazon、Google、eBay、淘宝、京东、阿里和其它的大型电子商务品牌都在使用Java来后台处理。这么多企业都青睐Java,主要原因是Java的可扩展性好,可以处理更多的客户数据。
这就意味着Java方面的工作比较好找,薪资收入比较高,另一点是在做Java开发时如果遇到问题,可以很容易从网上找到解决办法。
【相关阅读】Java工作原理
Java语言引入了Java虚拟机,具有跨*台运行的功能,能够很好地适应各种Web应用。同时,为了提高Java语言的性能和健壮性,还引入了如垃圾回收机制等的新功能,通过这些改进让Java具有其独特的工作原理。
Java虚拟机(JVM)
Java虚拟机(Java Virtual Machine,JVM)是软件模拟的计算机。JVM是Java*台的核心,它可以在任何处理器上(无论是在计算机中还是在其他电子设备中)安全、兼容地执行保存在.class文件中的字节码。Java虚拟机的“机器码”保存在.class文件中,有时也可以称为字节码文件。
Java虚拟机的简历需要针对不同的软硬件*台来实现,既要考虑处理器的型号,也要考虑操作系统的种类。由此在SPARC结构、X86结构、MIPS和PPC等嵌入式处理芯片上,在UNIX、Linux、Windows和部分实时操作系统上都可以实现Java虚拟机。
为了让编译产生的字节码能更好的解释与执行,把Java虚拟机分成了6个部分:JVM解释器、JVM指令系统、寄存器、栈、存储区和碎片回收区。
JVM解释器:虚拟机处理字段码的CPU。
JVM指令系统:该系统和计算机很相似,一条指令由操作码和操作数两部分组成。操作码为8位二进制数,主要是为了说明一条指令的功能,操作数可以根据需要而定,JVM有256种不同的操作指令。
寄存器:JVM有自己的虚拟寄存器,这样就可以快速地与JVM的解释器进行数据交换。为了功能的需要,JVM设置了4个常用的32位寄存器:pc(程序计数器)、optop(操作数栈顶指针)、frame(当前执行环境指针)和vars(指向当前执行环境中第一个局部变量的指针)。
JVM栈:是指令执行时数据和信息存储的场所的控制中心,它提供给JVM解释器运算所需要的信息。
存储区:JVM存储区用于存储编译过的字节码等信息。
碎片回收区:JVM碎片回收是指将使用过的Java类的具体实例从内存中进行回收,这就使得开发人员避免自己编程控制内存的麻烦和危险。随着JVM的不断升级,其碎片回收的技术和算法也更加合理。JVM 1.4.1版后产生了一种分代收集技术,简单来说就是依据对象在程序中生存的时间划分成代,以此为标准进行碎片回收。
无用内存自动回收机制
在程序的执行过程中,部分内存在使用过后就处于废弃状态,如果不及时进行回收,很有可能导致内存泄露,进而引发系统崩溃。在C++语言中是由程序员进行内存回收的,程序员需要在编写程序时把不再使用的对象内存释放掉,这种人为管理内存释放的方法往往会因程序员的疏忽而致使内存无法回收,同时也增加程序员的工作量。而在Java运行环境中,始终存在着一个系统级的线程,专门跟踪内存的使用情况,定期检测出不再使用的内存,并自动进行回收,避免了内存的泄露,也减轻了程序员的工作量。
代码安全性检查机制
安全和方便总是相对矛盾的`。Java编程语言的出现使得客户端计算机可以方便的从网络中上传或下载Java程序到本地计算机上运行,但是如何保证该Java程序不携带病毒或没有其他危险目的呢?为了确保Java程序执行的安全性,Java语言通过Applet程序来控制非法程序的安全性,也就是有了它才确保了Java语言的生存。
拓展:Java语言架构的优点
JAVA三大架构介绍
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务 对 象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好*惯。
Struts框架,它是一个基于Sun J2EE*台的MVC框架,主要是采用Servlet和JSP技术来实 现 的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
JAVA语言架构4大优点
优点一:菜单的配置能灵活实现
一个好的框架应该提供对菜单、二级菜单等的简单配置、管理。还是上文提到的两个框架,一个是通过 XML 配置文件实现了对系统中一级菜单、二级菜单、三级菜单的管理,而另个框架要实现相同的需求却要在数据库中进行繁琐的配置,显然第一个框架的实现方案更可 取、更高效。
优点二:可以方便的实现文件的上传与下载、数据的导入和导出的功能。
文件的上传于下载、数据的导入和导出在大部门项目中也会遇到,但是这两个功能可能会因为项目的不同导致实现上有一点区别,JAVA语言框架中要做的就是应该抽出其*有的东西,定义为抽象的东西,以便不同的项目、不同的需求都能很容易的实现该功能。
优点三: 具有异常处理框架。
基本上每个项目的异常处理都应该可以使用公司的框架定义的异常处理框架,并不会因为项目的不同而要求的异常处理也不一样。JAVA语言框架中,是具有异常处理框架
JAVA语言的八大优点
Java是一种可以撰写跨*台应用程序的面向对象的程序设计语言。JAVA语言有很多优点,下面就由小编为大家介绍JAVA语言的八大优点吧!
1、使用广泛
Java是目前使用最为广泛的网络编程语言之一。
它具有简单,面向对象,稳定,与*台无关,解释型,多线程,动态等特点。
2、简单
Java语言简单是指这门语言既易学有好用。不要将简单误解为这门语言很干瘪。你可能很赞同这样的观点,英语要比*语言容易学。但这并不意味着英语就不能表达丰富的内容和深刻的思想,许多文学诺贝尔奖的作品都是英文写的。
如果你学*过C++语言,你会感觉Java很眼熟,因为Java中许多基本语句的语法和C++一样,像常用的循环语句、控制语句等和C++几乎一样,但不要误解为Java是C++的增强版,Java和C++是两种完全不同的语言,他们各有各的优势,且将会长期并存下去,Java语言和C++语言已成为软件开发者应当掌握的语言。
如果从语言的简单性方面看,Java要比C++简单,C++中许多容易混淆的概念,有的被Java弃之不用了,有的以一种更清楚、更容易理解的方式实现,例如,Java不再有指针的概念。
3、面向对象
面向对象基于对象的编程更符合人的思维模式,使人们更容易编写程序。
在实际生活中,我们每时每刻都与对象在打交道,比如我们用的钢笔、骑的自行车、乘的公共汽车等。而我们经常见到的卡车、公共汽车、轿车等都会涉及以下几个重要的物理量可乘载的人数、运行速度、发动机的功率、耗油量、自重、轮子数目等。
另外,还有几个重要的功能:加速功能、减速功能、刹车、转弯功能等,我们也可以把这些功能称作是他们具有的方法,而物理量是它们的状态描述。仅仅用物理量或功能不能很好的描述它们。
在现实生活中,我们用这些共有的属性和功能给出一个概念机动车类。一个具体的轿车就是机动车类的一个实例对象,Java语言与其它面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义。
4、与*台无关
与*台无关是 Java 语言最大的优势。其它语言编写的程序面临的一个主要问题是操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。
Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了Java虚拟机JVM的计算机上正确的运行,Sun公司实现了自己的目标“一次写成,处处运行”。
5、解释型
我们知道C、C++等语言,都是只能对特定的CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CUP有关。例如,在C语言中,我们都碰到过类似下面的问题 int 型变量的值是10 ,那么下面代码的输出结果是什么呢?print(“%d,%d”,x,x=x+1)。
如果上述语句的计算顺序是从左到右,结果是 10,11,但是,有些机器会从右到左计算,那么结果就是11,11。Java不像C++,它不针对特定的CPU芯片进行编译,而是把程序编译为称做字节码的一个“中间代码”。字节码是很接*机器码的文件,可以在提供了Java虚拟机JVM的任何系统上被解释执行。Java被设计成为解释执行的程序,即翻译一句,执行一句,不产生整个的机器代码程序。翻译过程如果不出现错误,就一直进行到完毕,否则将在错误处停止执行。
同一个程序,如果是解释执行的,那么它的运行速度通常比编译为可执行的机器代码的运行速度慢一些。但是,对Java来说,二者的差别不太大,Java的字节码经过仔细设计,很容易便能使用JIT 即时编译方式 编译技术将字节码直接转化成高性能的本地机器码,Sun 公司在Java2发行版中提供了这样一个字节码编译器——JIT(Just In Time),它是Java虚拟机的一部分。
Java运行系统在提供JIT的同时仍具有*台 独立性,因而“高效且跨*台”对Java来说不再矛盾。如果把Java的程序比做“汉语”的话,字节码就相当于“世界语”,世界语不和具体的“国家”关,只要这个“国家”提供了“翻译”,就可以再快速地把世界语翻译成本地语言。
6、多线程
Java的'特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为,目前的计算机的处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好象多个任务在同时执行。C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。
7、安全
当你准备从网络上下载一个程序时,你最大的担心是程序中含有恶意的代码,比如试图读取或删除本地机上的一些重要文件,甚至该程序是一个病毒程序等。
当你使用支持Java的浏览器时,你可以放心地运行Java的小应用程序 Java Applet ,不必担心病毒的感染和恶意的企图,Java小应用程序将限制在 Java运行环境中,不允许它访问计算机的其它部分。
8、动态
Java程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库,而不像 C++那样,每当其类库升级之后,相应的程序都必须重新修改,编译。
Java与Java web有什么不同
java和javaweb有什么关系吗?它们之间的区别是什么?下面是小编整理的Java与Java web有什么不同,欢迎大家借鉴与参考,希望对大家有所帮助。
1.定义
Java是一种可以撰写跨*台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、*台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
2.组成方面
Java编程语言,即语法。
Java文件格式,即各种文件夹、文件的后缀。
Java虚拟机(JVM),即处理*.class文件的解释器。
Java应用程序接口(Java API)。
3.体系
Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版),
JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),
Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
4.主要特性
Java语言是易学的。
Java语言的语法与C语言和C++语言很接*,使得大多数程序员很容易学*和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
Java语言是强制面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
Java语言是分布式的。
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
Java语言是健壮的。
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
二、Java web
1.定义
Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的'发展注入了强大的动力。
2.主要框架
Java的Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向抽象实现请求和响应的流程,支持Jsp,Freemarker,Velocity等视图。
3.JSP优点
Java EE标准,这意味着有很大的市场需求和更多的工作机会。
上手快速并且相对容易。
有大量可用的组件库。
4.SpringMVC优点
对Spring MVC覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理。
与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等。
便于测试--归功于IoC。
相关阅读:Java技术的发展史
詹姆斯·戈士林博士以"Java技术之父"闻名于世。
他是Java技术的创始人, 作为Sun研究院院士,他亲手设计了Java语言,完成了Java技术的原始编译器和虚拟机。在他的带领下,Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准,其跨*台的技术优势为网络计算带来了划时代的变革。戈士林博士积极致力于软件开发工具的研究,以使软件开发工具的功能更强大,更容易为开发人员所使用,确保应用、服务开发的迅速完成。
Java技术是Sun公司在1995年5月正式推出的。八年多来,Java已从编程语言发展成为全球第一大通用开发*台。Java技术已为计算机行业主要公司所采纳,同时也被越来越多的国际技术标准化组织所接受。1999年,Sun推出了以Java 2*台为核心的J2EE、J2SE和J2ME三大*台。随着三大*台的迅速推进,在世界上形成了一股巨大的Java应用浪潮。同时,Java技术还引发了一场无法停止的大变革,为整个Java社团带来了巨大的潮水般的商业机会。
Java技术及其应用将有更大的发展。据IDC预计,自2001年起的其后5年内,采用Java的IT产品的价值将翻番,在2006年将达到4.53亿美元,年增长率为14.9%。截止到2003年5月,注册Java Developer Connection (JDC)的Java开发商超过300万人,对JRE(Java运行环境)的下载达7,200万次。Sun在JavaOne 2003大会上确定的目标是,在3~5年内使Java技术开发商从今天的300万发展到1,000万,以支持Java技术这一全球领先技术*台的显赫地位。
总结
java和javaweb之间其实没什么本质区别,我们可以说javaweb是java在web方面的应用,java是一种技术,可以用来开发应用程序和网站系统,但是java在开发应用程序方面有一定的先天不足,或者说不如别的技术方便吧,但是java在开发网页系统上有很大的优势,是当前java的主流应用方向,可以理解成javaweb就是java在开发web时的一种代号吧。
JAVAEE与JAVA有何区别
Java分三个版本:Java SE(标准版)、Java EE(企业版)、Java ME(微型版),而,不包括在这三个版本里面的JAVAEE,与JAVA又有何区别呢?下面我们一起来看看吧!
JAVAEE与JAVA有何区别
在Java的三个版本当中,SE就是大家学的Java基础,EE是公司最常用的用于网站开发(PC端),ME用于移动端开发,现在熟悉的安卓系统就是用JAVAME开发的。
Java既可以被编译,也可以被解释。通过编译器,可以把Java 程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器解释的独立于*台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同*台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨*台特性。
或者用一种更总结性的话术来表达就是:java跨*台就是能在不同的环境(主要是操作系统)上运行java程序!
这也是Java为什么这么火,为什么这么多年依然屹立不倒且久盛而不衰的原因。一个无视于*台,跨*台的语言,必然有长久的生命力。而作为程序员来说,职业发展的长远规划,选择Java远比选择其他无法实现跨*台的语言,更有长远价值(包括现在非常流行的H5语言,也是一种跨*台语言,“一次设计,普遍适用。一次编写,随处部署”,这个后续会在其他文章中具体说一下)。
相似的JAVAEE、javase、javame可简单的总结为三点:
Java SE 是做电脑上运行的软件。
Java EE 是用来做网站的-(我们常见的JSP技术)
Java ME 是做手机软件的。
回顾过去十五年的成果,Java一直是数一数二的。Java已经占据了曾经C语言所拥有的地位,而C语言在Java开始流行之前一直是最受关注的语言。TIOBE指数也曾宣布今年是Java语言年,而十年之前,Java就已然获此殊荣。非常期待Java能够获得另一个十年当中的年度最佳编程语言。
【拓展阅读】
一、Java基本语法—java标识符
什么是标识符
就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class后跟的Demo,就是我们定义的类名。类名就属于标识符的一种。
标识符除了应用在类名上,还可以用在变量、函数名、包名上。
标识符必须遵循以下规则
标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
不能以数字开头,不能是关键字;
严格区分大小写;
标识符的'可以为任意长度。
标识符案例
合法的标识符
Com*Area,radius,area $csdn _csdn zg_csdn;
※ 注意:由于Java严格区分大小写,CSDN和csdn是完全不同的标识符。
非法标识符
class (关键字);
100java(不能以数字开头);
Hello java (空格不是组成标识符的元素)。
Java中标识符的命名规则
JAVA中的变量名、方法名、类名和对象名都是标识符,程序在编写程序的过程中要标识和引用都需要标识符來唯一确定。
可由任意顺序的大小写字母、数字、下划线和美元符号组成;不能以数字开头;不能是 Java 中的保留关键字。
没有长度限制,但是大小写敏感,如 Hello 和 hello 是不同的标识符。
Java中的标识符命名规范
包名 多个单词组成时所有字母小写 ( 例:package com.csdn ) 。
类名和接口 多个单词组成时所有单词的首字母大写 ( 例:HelloWorld ) 。
变量名和函数名 多个单词组成时第一个单词首字母小写,其他单词首字母大写 ( 例:lastAccessTime、getTime ) 。
常量名 多个单词组成时,字母全部大写,多个单词之间使用_分隔 ( 例:INTEGER_CACHE ) 。
※ 注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。
二、Java相关知识
1、定义一个Java数组
String[] aArray = new String[5];String[] bArray = {"a","b","c", "d", "e"};String[] cArray = new String[]{"a","b","c","d","e"};
第一种是定义了一个数组,并且指定了数组的长度,我们这里称它为动态定义。
第二种和第三种在分配内存空间的同时还初始化了值。
2、打印Java数组中的元素
int[] intArray = { 1, 2, 3, 4, 5 };String intArrayString = Arrays.toString(intArray);// print directly will print reference valueSystem.out.println(intArray);// [I@7150bd4dSystem.out.println(intArrayString);// [1, 2, 3, 4, 5]
这里的重点是说明了Java中数组的引用和值得区别,第三行直接打印intArray,输出的是乱码,因为intArray仅仅是一个地址引用。第4行输出的则是真正的数组值,因为它经过了Arrays.toString()的转化。对Java初学者来说,引用和值仍需重视。
3、从Array中创建ArrayList
String[] stringArray = { "a", "b", "c", "d", "e" };ArrayListarrayList = new ArrayList(Arrays.asList(stringArray));System.out.println(arrayList);// [a, b, c, d, e]
Java语言面向对象的4大特征
Java是一种面向对象的跨*台编程语言,简单易用,功能强大。具有简单性、面向对象、分布式、健壮性、安全性、*台的独立与可移植性、多线程、动态性等特点,在这篇文章中,我们不讨论Java的语言特征,我们来说说Java面向对象的四大特性:封装、抽象、继承和多态。下面是小编精心整理的Java语言面向对象的4大特征,供大家参考借鉴,希望可以帮助到有需要的朋友。
1、封装
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属性,同时也具有eat,sleep等行为,我们在行为中实现一定的功能,也可操作属性,这是面向对象的封装特性.
封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。
封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。
通常情况下,只要记住让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这个类上的方法了,就基本上算是会面向对象的编程了。把握一个原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。
例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。
一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。
2、抽象
抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,所以抽象在面向对象语言是由抽象类来体现的。简单来说,抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。
例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象类不能实例化,比如鸟就是一个抽象实体,因为抽象实体并不是一个真正的对象,它的属性还不能完全描述一个对象,所以在语言中体现为抽象类不能实例化。抽象包括行为抽象和状态抽象两个方面。例如,定义一个Person类,如下:
Class Person {
String name;
int age;
}
人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。
3、继承
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。
简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法的方式,产生一个新的类型。我们在使用JAVA时编写的每一个类都是在继承,因为在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类、超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么JAVA就会默认为它是继承自Object类的。
4、多态
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的'灵活性和扩展性。可以说,多态就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为,多态可为程序提供更好的可扩展性,同样也可以代码重用。
例如,下面代码中的UserDao是一个接口,它定义引用变量userDao指向的实例对象由daofactory.getDao在执行的时候返回,有时候指向的是UserJdbcDao这个实现,有时候指向的是UserHibernateDao这个实现,这样,不用修改源代码,就可以改变userDao指向的具体类实现,从而导致userDao.User方法调用的具体代码也随之改变,即有时候调用的是UserJdbcDao的User方法,有时候调用的是UserHibernateDao的User方法:
UserDao userDao =daofactory.getDao;
userDao.User(user);
程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。方法的重写Overriding和重载Overloading是Java多态性的不同表现。
以上就是Java语言中面向对象的四大特性:封装、抽象、继承和多态,不知道有没有让你对Java语言有更深入的认知。
SUN认证JAVA程序员简介
Java程序员是美国SUN公司国际认证的程序员,她是目前全球最受重视、最受欢迎的程序员资格认证之一,具备这一认证就可以获得极好的工作机会和丰厚待遇。下面是小编整理的关于SUN认证JAVA程序员简介,希望大家认真阅读!
SUN认证JAVA程序员
所周知,Java以其独有的开放性、跨*台性和面向网络的交互性*卷全球,以其安全性、易用性和开发周期短的特点,迅速从最初的编程语言发展成为全球第二大软件开发*台。这些优点已引起国内外计算机界的极大关注;Java公用规范(PAS)已被国际标准化组织(ISO)认定,Java技术已列为当今世界信息技术三大要点之一。
根据权威部门的预测:到2000年,我国对Java技术人员的需求量将高达20万余人。然而,到目前为止,在我国参加认证培训的学员只有*万人,而参加认证考试并获得认证资格的人员不足2000人。这个数字和20万人的需求量相差甚远。
因此,早日掌握Java技术,对每个有志于在IT行业发展的人来说是尤为重要的。我们深信Java技术的应用和普及,必将成为势不可挡的`潮流迅速在世界各地发展。
Sun Java认证是业界唯一经Sun授权的Java认证。考试内容涉及所有Java相关知识、编程概念及applet开发技巧。Sun认证Java程序员考试旨在观察您通过应用软件分配进行复杂编程的能力。之后还要测试您完成编程所需的知识。每次考试都包括65道以上的选择题,时间大约为90分钟。
Sun认证Java程序员(SCJP)考试
想顺利通过考试,可以从以下几个方面着手:
1、参加培训或自学Java经典课程。如果有C语言和面向对象的基础,只需自学SL275课程以及JDK1.4 API,否则应该参加相应的培训班进行学*。我对C语言和面向对象都有一些基础,同时又参加了SL275+Weblogic+JSP课程的学*。
2、确定考试版本,明确考查的知识点及知识点的考查难度。目前SCJP考试有两个版本1.2和1.4,两个版本的比较如下表:
其中选择题有两种形式:
(1)给出一段代码让选择其运行结果;
(2)给出关于某基本概念的一些描述语句让选择正确的答案。填空题一般是给出一段正确的代码,不提供选择项,而让你填写上运行结果。
两个版本考查的知识点最大的差别在于310—025包含I/O、AWT,且对各个知识点的考查难度相对较容易,而310—035中去掉了I/O和AWT部分的内容,但增加了对Assertion的考查,同时对Wrapper classes、Collections、hashcode()和equals()考查的难度有所加大。所以要根据自己的情况选择合适的版本。我在复*时觉得I/O这一部分的内容较多且不好记忆,就选择了310—035,这个版本较难,也是对自己的一个挑战。
1、那辆车是他的一切挣扎与困苦的总结果与报酬,像身经百战的武士的一颗徽章。——骆驼祥子
2、他们自己可是不会跑,因为腿脚被钱赘的太沉重。——骆驼祥子
3、希望使他快活,恐惧使他惊惶,他想睡,但睡不着,四肢像散了似的在一些干草上放着。什么响动也没有,只有天上的星伴着自己的心跳。——骆驼祥子
4、夜深了,多日的疲乏,与逃走的惊惧,使他身心全不舒服。——骆驼祥子
5、夜还很黑,空中有些湿冷的雾气,心中更觉得渺茫。——骆驼祥子
6、不知道是往前走呢,还是已经站住了,心中只觉得一浪一浪的波动,似一片波动的黑海,黑暗与心接成一气,都渺茫,都起落,都恍惚。祥子像被一口风哽住,往下连咽了好几口气。——骆驼祥子
7、人最宝贵的东西是。生命对人来说只有一次。因此,人的一生应当这样度过:当一个人回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧;这样,在他临死的时候,能够说,我把整个生命和全部精力都献给了人生最宝贵的事业——为人类的*而。我们必须抓紧时间生活,因为即使是一场暴病或意外都可能终止生命。——钢铁是怎样炼成的
8、我完全不顾父愿,甚至违抗父命,也全然不听母亲的恳求和朋友们的劝阻。我的这种天性,似乎注定了我未来不幸的命运。——鲁滨逊漂流记
9、我这个不孝之子,背弃父母,不尽天职,老天就这么快惩罚我了,真是天公地道。——鲁滨逊漂流记
10、唉!人在恐惧中所作出的决定是多么荒唐可笑啊!凡是理智提供他们保护自己的种种办法,一旦恐惧心占了上风,他们就不知道如何使用这些办法了。——鲁滨逊漂流记
11、尤其是,在这种不幸的境遇中,上帝指引我认识他,乞求他的祝福,这给了我莫大的安慰。这种幸福足以补偿我曾经遭受的和可能遭受的全部不幸还有余。——鲁滨逊漂流记
12、不过,在人性里,却还有一条既惊人而又慈悲的成规,受难的人在受苦的当时,从不会明了那有多么的剧烈,倒是事后的绞痛叫他最难堪。——红字
13、女人们是很会从琐琐碎碎的事情上调制出微妙的毒药的。——红字
14、在那凄凉古老的时代里,鄙俗的人们对于使他们的想象发生兴趣的事,总是赋予它一种古怪的恐怖。——红字
15、世界上没有对人人都不利的坏事。——汤姆叔叔的小屋
16、世界上有这样一些有福的人:他们把自己的痛苦化作他人的幸福;他们挥泪埋葬了自己在尘世间的希望,他却变成了种子,长出鲜花和香膏,为孤苦伶仃的苦命人医治疗伤。——汤姆叔叔的小屋
17、一个有生以来听惯了辱骂的人,耳朵里突然听见一句那么温暖的话,是很难信以为真的。——汤姆叔叔的小屋
18、在与法律之前,合乎“自然的”只有狮子的力量,或者动物饥寒时的需要,更简单地用一个字表示,便是“欲”。——红与黑
19、每个人都会有缺陷,就象被上帝咬过的苹果,有的人缺陷比较大,正是因为上帝特别喜欢他的芬芳。——战争与和*
20、庄严肃穆的圣母院静静的坐落在巴黎繁华的闹市之中,这个城堡一般的建筑巍巍然屹立,无言,无语,尘封了多少故事。他历尽荣辱沉浮,看惯人间沧桑,承受了多少悲欢离合,承载了多少岁月的重量,历练出凝重的气质,默默的等待人们去开启她对美与丑的权释。——巴黎圣母院
21、每当我回忆起俄国令人压抑的龌龊野蛮的生活,我常常问自己:这种丑陋的行为有必要去写吗?我每次都怀着充分的信心回答自己:有必要!因为这就是活生生的丑陋的生活现实,这种现实目前还存在着。要改变这种现实,要从人们的记忆和心灵中,从我们沉重龌龊的生活中清除它的影响,就必须透彻地了解这种现实。——童年
22、温和慷慨的人不过比傲慢霸道的人自私得稍微公*一点罢了,等到种种情况使得两个人都感觉到一方的利益并不是对方思想中主要关心的事物的时候,幸福就完结了。——呼啸山庄
23、不是因为随着时间而淡忘,而是随着时间更加难忘。——悲惨世界
24、你为什么要跟我讲这些!她跟你,与我无关。你以为我穷,不好看,就没有感情吗?我也会的,如果上帝赋予我财富和美貌,我一定要使你难以离开我,就像现在我难以离开你!上帝没有这样。我们的精神是同等的,就如同你跟我经过坟墓,将同样地站在上帝面前!——
java中的if语句
java中if语句的用法
java的if语句
java的输入语句
java的输出语句
java的输入输出语句
java名言
python中的with语句
matlab中的if语句
python中的if语句
中二的语句
vb中if语句的用法
matlab中if语句的用法
生活中的语句
matlab中的for循环语句
我爱中国的语句
壮我中华的语句
c语言中的return语句
求魔中的经典语句
中秋节的语句
在SQL的查询语句中
备战期中的语句
书中的经典语句
关于杯中酒的语句
请以选段中的语句为例
活着中的经典语句
开关语句中的default
中考必胜的语句
c语言中if语句的用法
c语言中for语句的用法
跟男生告白含蓄的句子
描写夜班的句子
圣经中最经典的句子
举世无双的句子
划船摘莲蓬的句子
描写山河壮丽的句子
小清新签名句子简短
描写杀鱼的句子
形容春天花很美的句子
建军90周年句子
形容新的一个月的句子
关于追求幸福的句子
关于失去亲人的句子
关于咖啡馆的句子
关于无家可归的句子
揭露人性丑陋的句子
形容男人背叛的句子
黄姓氏的专属句子
跟渣男分手后的句子
打老鼠的幽默句子
关于推销化妆品的句子
表示闺蜜友谊的句子
表达开心的句子诗句
关于人特别啰嗦的句子
形容痴情男子的句子
背叛信任句子说说心情
关于各有所爱的句子
夸奖儿童的句子大全
关于迫不及待的句子
描述现实的句子说说
适合宝宝周岁的句子