thinking in java 随笔】的更多相关文章

java与c++的几点区别 (1)Java比C++程序可靠性更高.有人曾估计每50行C++程序中至少有一个BUG.姑且不去讨论这个数字是否夸张,但是任何一个C++程序员都不得不承认C++语言在提供强大的功能的同时也提高了程序含BUG的可能性.Java语言通过改变语言的特性大大提高了程序的可靠性.(2)Java语言不需要程序对内存进行分配和回收.Java丢弃了C++ 中很少使用的.很难理解的.令人迷惑的那些特性,如操作符重载.多继承.自动的强制类型转换.特别地,Java语言不使用指针,并提供了自动…
1.throw语句:Java编译器在执行throw语句时,会立即停止常规的程序执行,开始寻找能够捕获或处理异常的异常处理程序: 2.异常处理程序使用try/catch/finally编写. 3.如果当前代码块有异常处理程序,则编译器会退出这个代码块,开始执行异常处理代码,而异常处理程序执行完毕后,编译器会继续执行处理程序后的语句.如果当前代码块没有适当的处理程序,则会在外层代码中查找.如果没有,根据记法结构不断向上冒泡,直到main()方法,如果还是没有则打印一个错误消息和堆栈跟踪并退出. 4.…
1.常量:final可以设置变量,也可以表示这个变量只能被赋值一次(即可以声明一个空变量,只能赋值一次):可以使用关键字static final设置一个类常量,以供一个类中的多个方法使用. 2.字符串:Java没有内置的字符串类型,而是标准库中提供了一个预定义类,每个用双引号括起来的字符串都是String类的一个实例.可以用String 类的方法对字符串进行操作,如”子串“”拼接“:String 类没有提供用于修改字符串的方法. 3.构建字符串:1)采用字符串的连接方法,每次连接时都会构建一个新…
1.继承:子类调用超类构造器时,super调用构造器的语句必须是子类构造器的第一条语句: Java没有多继承,但是可以构造实现多个接口的类: 2.多态:Java 中,对象变量是多态的.一个父类变量既可以引用自身对象,也可以引用子类对象,反过来则不行则要进行类型转换(尽量少用). 3.方法的名字和参数列表称为方法的”签名“,虚拟机预先为每个类创建了一个方法表,列出了所有方法的签名和实际调用的方法. 4.动态绑定与静态绑定的区别: 5.抽象类:(1)包含一个或多个抽象方法的类本身必须被声明为抽象的,…
调用requonse.getWriter()方法时可实现文本字符串数据输出,调用response.getOutputStream()方法可现实字节流数据的输出.两种输出方式threadlocal模式和osiv模式~~~!!!!threadlocal  是一个局部的线程变量   只是一个map   保存的是线程的变量不是线程模拟写一个hashmap出来 不允许导入hashmap包?  通过数组!模拟一个ThreadLocal出来! public class MyThreadLocal { Map<…
要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10安装和汉化方法 java窗体 package java20130629; import javax.swing.*; public class Form extends JFrame { public Form() { this.setLayout(null); JLabel jl=new JLab…
在java中的异常处理和c#中的异常处理是一样的都是用try-catch语句. 基本语法如下 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally语句 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } 抛出异常 使用thows和throw语句抛出异常 public static vo…
java和c#一样都是面向对象的语言. 面向对象的语言有三大特征:封装.继承.多态 封装 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. class Person2 { private String name; public void setName(String name) { this.name=name; } public String getName() { return name; } private String sex; public voi…
一维数组 创建一维数组并输出 public class OneDimensionalArray { public static void main(String argas[]) { int i[]=new int[10]; for(int j=0;j<i.length;j++) { i[j]=j; System.out.println(i[j]); } } } 运行结果 多维数组 创建多维数组并输出 public class MultiDimensional { public static v…
数据类型 一:整型 1.十进制 2.八进制 八进制数是满8进1,包含0~7的8个数字,在整数前面添加一个"0",表示是八进制数. 3.十六进制 十六进制数是满16进1,包含0~9,a~f的16个数字,再整数前面添加一个"0x"表示是十六进制数. 二:浮点型 1.float:单精度浮点数 声明float类型的浮点数时,要在结尾加F或f. 2.double:双精度浮点数 声明double类型的浮点数时,要在结尾加D或d,浮点类型默认的类型是double,所以D和d也可以…
java开发工具有很多这里我使用的是Eclipse. 首先我在官网上下载了Eclipse的软件包,下载地址:http://www.eclipse.org/downloads/,然后有在网上找了一个汉化的包. 软件包直接解压即可使用,把汉化包放到里面,工具显示的就是中文的环境了. 下面是我,用Eclipse工具写的一个HelloWorld…
电脑系统:windows8 在这里介绍一下java平台的3个版本: Java SE--Java Standard Edition,Java的标准版,主要用于桌面级的应用和数据库开发. Java EE--Java Enterprise Edition,Java的企业版,提供了企业级开发的各种技术,主要用于企业级开发. Java ME--Java Micro Edition,主要用于潜入式和移动式的开发,最常用的就是手机应用软件开发. 这里我们用的是java se 第一步:下载Java SE,下载地…
1. java对象转json Message msg = generateMessage();ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(msg); 2. json转java对象 ObjectMapper mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPE…
写完了基础篇,想了非常久要不要去写进阶篇.去写JSP等等的用法.最后决定先不去写.由于自己并非JAVA方面的大牛.眼下也在边做边学,所以决定先将自己不懂的拿出来学并记下来. Timer是Java自带的java.util.Timer类,通过调度一个java.util.TimerTask任务.这样的方式能够让程序依照某一个频度运行. 1.Timer类的源代码分析: public class Timer { /** * The timer task queue. This data structure…
在Java开发中,注解可谓是帮了大忙.注解的使用帮助我们简化了代码,让代码更加简洁.今天就来谈谈常用的Lombok注解. lombok注解文档 lombok官方下载地址 先看一下lombok支持的一些常见的注解: @NonNull @Getter/@Setter @Cleanup @ToString @EqualsAndHashCode @EqualsAndHashCode @NoArgsConstructor @AllArgsConstructor @NonNull NonNull注解可以用在…
如果要定义变量为对象,就要创建此对象对应的java类, 且定义的类型为类名,且都为private…
java的方法是运行期动态绑定上去的,可以根据自己真正实例化的类来判断调用哪个方法,比如子类重写了父类方法,会调用子类方法. 而利用final关键字可以让方法不能重写,就可以在编译期就绑定,这样就可以提高执行效率.   private 方法 默认就是final的   final 的类 里面所有方法 默认都是final的 ==================================================================== 虚函数 定义:在某基类中声明为 virt…
前言: hashmap是一种很常用的数据结构,其使用方便快捷,接下来笔者将给大家深入解析这个数据结构,让大家能在用的时候知其然,也知其所以然. 一.Map 首先,从最基本的讲起,我们先来认识一下map是个什么东西.在我们写程序的时候经常会遇到数据检索等操作,对于几百个数据的小程序而言,数据的存储方式或是检索策略没有太大影响,但对于大数据,效率就会差很远.我们来讨论一下这个问题. 1.线性检索: 线性检索是最为直白的方法,把所有数据都遍历一遍,然后找到你所需要的数据.其对应的数据结构就是数组,链表…
装饰模式(Decorator Pattern):为已有功能动态地添加更多功能的一种方式Attach additional responsiblities to an object dynamically keeping the same interface. Decorator provide a flexible alternative to subclassing for extending functionality. 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类…
Spring的scope="prototype"属性 - 多例 spring 默认scope 是单例模式(singleton),这样只会创建一个Action对象,每次访问都是同一个Action对象,数据不安全. struts2 是要求每次次访问都对应不同的Action,scope="prototype"(多例) 可以保证 当有请求的时候 都创建一个Action对象. request.getParameter() 和request.getAttribute() 区别:…
JAVA的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 实例变量:独立于方法之外的变量,不过没有 static 修饰. 局部变量:类的方法中的变量. public class Variable{ static int allClicks=0; //类变量 String str="hello world"; // 实例变量 public void method(){ int i =0; // 局部变量} } JAVA修饰符 修饰符用来定义类.方法或者变量,通常放在语句…
敲击sout+Tab会出现:System.out.println(); int(-2147483648, 2147483647) 当一个方法类型不是void时,那么我们不仅要考虑它正确时的返回值,错误时的返回值我们也要定义一下,如:return -1; 所以,当一个方法(method)返回-1,那么说明这个方法出了错误. return (n == 0) ? a : b 表示:如果n==0,则返回a: 如果n!=0,则返回b: String.format("%.2f", Number)表…
1.接口: 1)接口不是类,不能使用new运算符实例化一个接口,而是对类的一组需求描述,这些类要遵循接口描述的统一格式进行定义.个人感觉像C语言中的函数在头文件中的预先声明,但是包含了一些类的特点,比如继承之类. 2)接口中的所有方法自动属于public,不必提供关键字,但是在实现接口时必须提供pulic. 3)让类实现一个接口:(1)将类声明为实现给定的接口(implements) (2)对接口中的所有方法进行定义: 4)不能构造接口的对象,但是可以声明接口的变量,而接口的变量必须引用实现接口…
线程生命周期 线程的生命周期:新建状态.准备状态.运行状态.等待/阻塞状态.死亡状态 示意图: 定义.创建及运行线程 线程: package threadrun; //定义一个实现Runnable接口的类 class Myrunable1 implements Runnable { public void run() { for(int i=0;i<=50;i++) { System.out.println("线程1"); } } } //定义一个实现Runnable接口的类 c…
类 同一个包(同一个目录),类的创建与调用 class Man{ String name; void GetMyName() { System.out.println(name); } } public class Person { public static void main(String arges[]) { Man m=new Man(); m.name="小黄"; m.GetMyName(); } } 运行结果 不同的包(不同目录目录),类的创建与调用 package Peo…
条件语句 if(表达式){方法体}else if(表达体)else{方法体} 简写形式:if... 一般形式:if...else... 完整形式:if...else if...else 分支语句 switch(表达式) { case 表达式1: { 方法体 break; } case 表达式2: { 方法体 break; } default: 方法体 } 循环语句 while循环语句 while(表达式) { 方法体 } do...while循环语句 do { 方法体 } while(表达式)…
算术运算符 "+":加法运算符,也可做字符连接用途 "-":减法运算符 "*":乘法运算符 "/":除法运算符 "%":求余运算符 关系运算符 "==":表示等于 "!=":表示不等于 ">=":表示大于等于 "<=":表示小于等于 ">":表示大于 "<":表示小…
初始化顺序 在一个类里,初始化的顺序是由变量在类内的定义顺序决定的.即使变量定义大量遍布于方法定义的中间,那些变量仍会在调用任何方法之前得到初始化--甚至在构建器调用之前.例如: class Tag { Tag(int marker) { System.out.println("Tag(" + marker + ")"); } } class Card { Tag t1 = new Tag(1); // Before constructor Card() { //…
不仅类,函数,甚至参数都可以获取完整路径…