1、XML 是一种描述数据的方式。可以使用任何一种程序设计 语言处理 XML 数据,而 Java API 对 XML 处理提供了很好的支持。
2、HTML 是一种描述网页结构的方式。除了用于在网页上放置 Java applet 的 HTML 扩展之外,两者没有任何共同之处。
3、检查一个字符串既不是 null 也不为空串
if (str != null && str.length() != 0)
4、关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上, 常量名使用全大写。在 Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为 类常量。可以使用关键字 static fina丨设置一个类常量
5、数据类型
Java 是 -种强类型语言。这就意味着必须为每一个变量声明一种类型: 在 Java 中, -共有 8 种基本类型(primitive type), 其中有 4 种整型、2 种浮点类型、 1 种用于表示 Unicode编码的字符 单元的字符类型 char (请参见论述 char类型的章节)和 1 种用于表示真值的 boolean类型。



在 Java中,char 类型描述了 UTF-16 编码中的一个代码单兀。 我们强烈建议不要在程序中使用 char 类型,除非确实需要处理 UTF-16 代码单元。最好 将字符串作为抽象数据类型处理。
6、需要注意, 整数被 0除将会产生一个异常, 而浮点数被 0 除将会得到无穷大或 NaN结果。
7、位运算符
& (“and”) 、 | (“or”) 、 ^ (“XOr”)、 ~(“not”)
8、 枚举类型
有时候,变量的取值只在一个有限的集合内。针对这种情况, 可以自定义枚举类型。枚举类型包括有限个命名的值。
enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARCE};
9、 字符串
每个用双引号括起来的字符串都是 String类的一个实 例。
子串 String类的 substring方法可以从一个较大的字符串提取出一个子串。
拼接 Java语言允许使用 + 号连接(拼接)两个字符串。
在需要构建字符串时就凋用 toString 方法, 将可以得到一个 String 对象, 其中包含了构建器 中的字符序列。
10、读取文件
要想对文件进行读取,就需要一个用 File 对象构造一个 Scanner 对象,如下所示: Scanner in = new Scanner(Paths.get(“myflle.txt”), “UTF-8”); 如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠: “ c:\mydirectory\myfile.txt” 。
11、写入文件
要想写入文件, 就需要构造一个 PrintWriter 对象。在构造器中,只需要提供文件名: PrintWriter out = new PrintlulriterC’myfile.txt", “UTF-8”); 如果文件不存在,创建该文件。可以像输出到 System.out—样使用 print、 println 以及 printf 命令。
12、 多重选择:switch 语句

switch语句将从与选项值相匹配的 case标签处开始执行直到遇到 break语句,或者执行到 switchi吾句的结束处为止。如果没有相匹配的 case 标签, 而有 default 子句, 就执行这个子句。
警告: 有可能触发多个 case 分支。如果在 case 分支语句的末尾没有 break 语句, 那么就 会接着执行下一个 case 分支语句。这种情况相当危险, 常常会引发错误。
13、下 面声明了整型数组 a: int[ ] a;
应该使用 new 运算 符创建数组。 int[ ] a = new int[100];
14、 for each 循环
例如, for (int element : a)
System.out.println(element);打印数组 a 的每一个元素,一个元素占一行。
foreach 循环语句的循环变量将会遍历数组中的每个元素, 而不需要使用下标值。
15、数组排序
要想对数值型数组进行排序, 可以使用 Arrays类中的 sort 方法。
16、数组拷贝
如果希望将 一个数组的所有值拷贝到一个新的数组中去, 就要使用 Arrays 类的 copyOf方法。
17、构造器与其他的方法有一个重要的不同。构造器总是伴随着 new 操作符的执行被调用, 而不能对一个已经存在的对象调用构造器来达到重新设置实例域的目的。
•构造器与类同名
•每个类可以有一个以上的构造器
•构造器可以有 0 个、1 个或多个参数
•构造器没有返回值
•构造器总是伴随着 new 操作一起调

18、java POI 读取Excel数据
整型自动变double型了,需重新格式化保持不变

           double d = cell_0.getNumericCellValue();NumberFormat nf = NumberFormat.getInstance();String s = nf.format(d);

19、boolean 类型与数值类型之间,只有极少数的情况才需要将布尔类型转换为数值类型,可以使用条件表达式b ? 1:0。

20、可以在赋值中使用二元运算符,x+=4; 等价于x=x+4;(一般地,要把运算符放在=号左边,如*=或%=)
21、自增与自减运算符

int n=1;n++;//n--  (后缀形式)++n;//--n   (前缀形式)

后缀和前缀形式都会使变量值加1或减1.但是用在表达式中时,二者是不一样的,前缀形式会先完成加1;而后缀形式会使用变量原来的值,运算后自己值再加1.
22、字符串
String 任何用双引号括起来的字符串都是String类的一个实例。
(1)子串
String类的substring方法可以从一个较大字符串提取出一个子串。

  String a="hello";String s=a.substring(0,3);s="hel";

(2) 拼接
Java 语言允许使用+号连接(拼接)两个字符串。
(3)字符串修改:
提取需要的字符,然后再拼接上替换的字符串,创建一个新字符串。
(4)采用 equals 方法检测字符串是否相等
a.equals(b);
不区分大小写比较,使用equalsIgnoreCase()方法,
(5)空串与Null串
空串“” 是长度为0的字符串
检查是否为空串,

 if(str.length()==0)或者if(str.equals(""))

空串是一个Java对象,有自己的串长度(0)和内容(空)。
Null串,要检查一个字符串是否为null,使用以下条件,

 if(str==null)

Java中String类包含了50多个方法。

23、
List继承了Collection,是有序的列表。
实现类有ArrayList、LinkedList、Vector、Stack等
ArrayList是基于数组实现的,是一个数组队列。可以动态的增加容量!
LinkedList是基于链表实现的,是一个双向循环列表。可以被当做堆栈使用!
Vector是基于数组实现的,是一个矢量队列,是线程安全的!
Stack是基于数组实现的,是栈,它继承与Vector,特性是FILO(先进后出)!

在实际的应用中如果使用到队列,栈,链表,首先可以想到使用List。不同的场景下面使用不同的工具,效率才能更高!

  1. 当集合中对插入元素数据的速度要求不高,但是要求快速访问元素数据,则使用ArrayList!
  2. 当集合中对访问元素数据速度不做要求不高,但是对插入和删除元素数据速度要求高的情况,则使用LinkedList!
    3.当集合中有多线程对集合元素进行操作时候,则使用Vector!但是现在BVector现在一般不再使用,如需在多线程下使用,可以用CopyOnWriteArrayList,在java.util.concurrent包下。
    4.当集合中有需求是希望后保存的数据先读取出来,则使用Stack!
    24、final
    关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后, 就不能够再更改了。习惯上,
    常量名使用全大写。
    在 Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为
    类常量。可以使用关键字 static fina丨设置一个类常量。
    类常量的定义位于 maiii 方法的外部。 因此, 在同一个类的其他方法中也可
    以使用这个常量。 而且, 如果一个常量被声明为 public, 那么其他类的方法也可以使用这个
    常fi。
    25、运算符
    在 Java 中,使用算术运算符 +、-、 *、/ 表示加、减、 乘、 除运算。 当参与 / 运算的两个
    操作数都是整数时, 表示整数除法;否则, 表示浮点除法。 整数的求余操作(有时称为取模)
    用 % 表示。
    26、
    在 Java 中,没有幂运算, 因此需要借助于 Math 类的 pow 方法。语句:
     double y = Math.pow(x, a);

27、
JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。
JDBC代表Java数据库连接。

JDBC库中所包含的API任务通常与数据库使用:

连接到数据库

创建SQL或MySQL语句

在数据库中执行SQL或MySQL查询

查看和修改记录

28、 NAT 功能
端口映射是 NAT 的一种,它将外网主机的 IP 地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。

#################################################################################
类 和对象

类定义了一种抽象的数据类型。
类不但定义了抽象数据类型的组成(成员变量),同时还定义了可以对该类型实施的操作(方法)。
类的定义包括“成员变量”的定义和“方法”的定义,其中“成员变量”用于描述该类型对象共同的数据结构。
成员变量的类型分一、8中基础类型;二、引用类型,引用类型初始
值为null。
class 类名{
成员变量类型 变量名称;
… … …
}
类的方法的定义:用于描述对象的行为,封装对象的功能。
class 类名{
修饰词 返回值类型 方法名称([参数列表]){
方法体
}
… … …
}

使用new关键字创建对象
类定义完成后,可以使用new关键字创建对象创建对象的过程通常称为实例化。
new 类名();

引用类型变量
为了能够对实例化的对象进行访问控制,需要使用一个特殊的变量-----引用。

引用类型变量可以存放在该类对象的地址信息,通常称为“指向该类的对象”;当一个引用类型变量指向该类的对象时,就可以通过这个变量对对象实施访问。
除8种基本类型之外,用类、接口、数组等声明的变量都称为引用变量,简称“引用”。

访问对象的成员变量、调用方法
可以通过引用访问对象的成员变量或调用方法**。

引用类型变量的赋值
引用类型变量存储的是对象的地址信息。相同类型的引用类型变量之间也可以相互赋值。
引用类型变量之间的赋值不会创建新的对象,但有可能会使两个以上的引用指向同一个对象。

null 和NullPointerException (空与空指针异常)
对于引用类型变量,可以对其赋值为null。null的含义为“空”,表示还没有
指向任何对象。

当一个引用的值为null的时候,如果通过引用访问对象成员变量或者调用方法是不和逻辑的,此时,会产生NullPointerException。

方法重载及意义
在Java语言中,允许许多方法的名称相同,但参数列表不同,称之为方法的重载(overload)

构造方法语法结构
构造方法是在类中定义的方法,不同于其他的方法,构造方法的定义有如下两点规则:
构造方法的名称必须与类名相同。
构造方法没有返回值,但也不能写void。

语法:
【访问修饰符】类名(){
/构造方法体
}

通过构造方法初始化成员变量
构造方法通常用于实现对象成员变量的初始化
创建对象时,构造方法写在new 关键字后,可以理解为:“new”创建了对象,而构造方法对该对象进行初始化。

this关键字的使用
this关键字用在方法体中,用于指向调用该方法的当前对象;**简单地说:那个对象调用方法,this指的就是哪个对象。**严格来讲在方法中需要通过this关键字指明当前对象。

构造方法中,用来初始化成员变量的参数一般和成员变量相同的名字。这样会有利于代码的可读性,但此处就必须通过this关键字来区分成员变量和参数。

任何一个类都必须含有构造方法,
如果源程序中没有定义,编译器在编译时将为其添加一个无参的空构造方法。
当定义了构造方法后,Java编译器将不再添加默认的构造方法。

构造方法的重载:
为了使用方便,可以对一个类定义多个构造方法,这些构造方法都有相同的名称(类名),方法的参数不同,称之为构造方法的重载。

数组是对象
在JAVA中,数组属于引用数据类型。
数组对象在堆中存储,数组变量属于引用类型,存储数组对象的地址信息,指向数组对象。
数组的元素可以看成数组对象的成员变量(只不过类型全都是相同的)


引用类型数组的声明
数组的元素可以是任何类型,当然也包括引用类型,

引用类型数组的初始化
引用类型数组的默认初始值都是null。
如果希望每一个元素都指向具体的对象,需要针对每一个数组元素进行new 运算。


向线程中传递数据的三种方法:
一、通过构造函数传递参数

public class MyThread1 extends Thread
{private String name;public MyThread1(String name){this.name = name;}public void run(){System.out.println("hello " + name);}public static void main(String[] args){Thread thread = new MyThread1("world");thread.start();        }
}

二、通过变量和方法传递数据

public class MyThread2 implements Runnable
{private String name;public void setName(String name){this.name = name;}public void run(){System.out.println("hello " + name);}public static void main(String[] args){MyThread2 myThread = new MyThread2();myThread.setName("world");Thread thread = new Thread(myThread);thread.start();}
}

三、通过回调函数传递数据

class Data
{public int value = 0;
}
class Work
{public void process(Data data, Integer numbers){for (int n : numbers){data.value += n;}}
}
public class MyThread3 extends Thread
{private Work work;public MyThread3(Work work){this.work = work;}public void run(){java.util.Random random = new java.util.Random();Data data = new Data();int n1 = random.nextInt(1000);int n2 = random.nextInt(2000);int n3 = random.nextInt(3000);work.process(data, n1, n2, n3);   // 使用回调函数System.out.println(String.valueOf(n1) + "+" + String.valueOf(n2) + "+"+ String.valueOf(n3) + "=" + data.value);}public static void main(String[] args){Thread thread = new MyThread3(new Work());thread.start();}
}

Java核心编程随笔相关推荐

  1. Java核心编程总结(五、线程池与死锁),淘汰了80%的Java面试者

    | Java核心编程总结(八.IO输入输出流)

  2. Java是动态语言吗?从《Java核心编程》探索真知

    目录 一.Java是动态语言吗? 1.动态语言 2.静态类型 3.<Java核心编程>中探索~~为什么Java可以称之为"准动态语言"? 二.了解ClassLoader ...

  3. Java 核心编程技术干货

    Java 基础篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具类篇 Java 综合篇 Java基础篇 恕我直言,在座的各位根本写不好Java! 8张图带 ...

  4. java核心编程视频教学

    前言 Java作为最全面的语言,国内开发者也是最多的,Java综合起来各方面都不错,在大部分场景下是一种稳健的技术选择.加上近年来安卓的推动,目前也是最流行的一种语言. 现在Java的就业市场看起来还 ...

  5. Java核心编程总结(二、抽象类与接口),linux音频驱动架构

    抽象类不能创建对象,如果创建,编译无法通过而报错 理解:假设创建了抽象类的对象,调用抽象方法,抽象方法没有方法体,无法执行 抽象类一定有而且是必须有构造器,是提供给子类创建对象时,初始化父类成员使用的 ...

  6. Java核心编程总结(十、反射),linux技术支持

    1.基础回顾+面试 =========================================================================== 1.1单元测试 什么是单元测 ...

  7. java核心编程(集合、io、反射等)

    学习总览: 一.集合 1.Collection 1.1 Collection接口 集合: 存储数据的容器(数据结构) Collection:是一个接口,定义了操作集合相关方法 Collection下有 ...

  8. Java核心编程(16)

    1.Map集合 1.1Map集合概述和特点[理解] Map集合概述 interface Map<K,V> K:键的类型:V:值的类型 Map集合的特点 双列集合,一个键对应一个值 键不可以 ...

  9. JAVA核心编程之集合

    1. java集合框架 Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 Collection接口存储一组不唯一,无序的对象 List接口存储一组不唯一,有序(插 ...

最新文章

  1. mysql 查询优化器跟踪_3. select语句执行过程-优化器
  2. 差分能量分析介绍(五)
  3. Ubuntu16.04安装TORCS
  4. winmail计算机三级,2016年计算机三级网络技术机考模拟题(1)
  5. GitHub与GitLab的区别
  6. java比赛_javamq
  7. Atitit mybatis3 注解模式使用总结 目录 1. mybatisdemo 1 1.1. /ormMybatis3demo/src/db.properties 1 1.2. /ormMyb
  8. 9.4SAS软件入门
  9. USB C口5V输入,四节串联锂电池充电管理芯片,IC电路板PW4405芯片-22号电路板
  10. 微信小程序对接海康威视摄像头
  11. 传化智联如何拿下第248张第三方支付牌照
  12. 电脑如何备份重要文件?教你两种简单方法
  13. 开发手机游戏的步骤是怎样的?
  14. 沉船会有什么_泰坦尼克号沉船之谜
  15. 奶制品生产与销售matlab,奶制品的生产与加工
  16. Word取消自动更改、自动更正
  17. java float四舍五入保留两位小数_java基础入门-float四舍五入保留两位小数注意的地方...
  18. C++11多线程第一篇:并发基本概念及实现,进程、线程基本概念
  19. 『谷粒儿』-有它,育儿就是这么简单
  20. nuxt3 阿里云直播播放器以及webSocket聊天室

热门文章

  1. android 仿微信demo————微信发现界面实现
  2. 组合体视图的画图步骤_组合体三视图的画法
  3. GIS的基本概念二:大地水准面、旋转椭球体(椭球体)、大地基准面
  4. plsql取消文件备份
  5. 2022全国高职院校教师真实薪酬数据汇总
  6. Windows server 2012远程桌面会话主机和远程桌面授权。
  7. mysql主从配置duxi_配置MySQL主从复制(一主一从)
  8. 后端每天更新微信用户用户头像
  9. 解决:Linux nohup命令不再默认输出日志文件
  10. 基于SSH开发service电子信箱(邮箱)管理系统