第1章

1、java特性

简单性,java语法是一个C++语法的纯净版本。

面向对象,java将重点放在数据和对象的接口上。java与C++的主要不同点在于多继承,在java中实现多继承的机制是采用接口以及元类模型。

网络技能,健壮性,安全性,体系结构中立,

可移植性,java的基本类型的大小以及有关算法都做了明确的规定,java规范没有依赖具体实现。例如:java中的int类型永远是32位的整数,在其他语言中就不一定。其他语言只有一种规定就是int类型的大小不能低于shortint,不能高于long int。java中的字符串使用标准的Unicode格式存储。

解释性,高性能,多线程,动态性。

2、java发展史

java以C++为基础。

java版本发展过程

版本  年份  语言新特性  类与接口的数量

1.0  1996  语言本身     211

1.1  1997  内部类        477

1.2  1998  无              1524

1.3   2000 无              1840

1.4  2004   断言           2723

5.0  2004  泛型 for each 可变元参数 自动打包  元数据 枚举  静态导入    3279

6     2006  无             3777

第3章:基本程序设计结构

1.简单的应用程序

 public class FirstSample
{
public static vod main(String[] args)
{
System.out.println("Hello World!")
}
}

类名大写字母开头,若名字由多个单词构成,每个单词第一个字母都要大写;

源代码电网文件名必须与公共类的类名相同,并用java做拓展名;

java虚拟机从指定类的main方法开始执行;

main方法必须声明为public,必须是静态的;

2.注释

行注释:   //

段注释:    /*                  */

生成文档:      /**              **/

3.数据类型

java是强类型语言,即必须为每一个变量声明一种类型;

java一共有8种基本类型:4种整型   2 种浮点型   1种字符类型char   1种bool类型;

java中所有数值类型所占用的字节数与平台无关;

4.变量

声明一个变量后,必须用赋值语句对变量进行显式初始化;

可以将声明放在代码中的任意位置;

利用关键字final指示常量, static final指示类常量,const是java保留字但并未使用;

5.运算符

6.字符串

String类包含在java.lang包中,这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class),不需要显式的使用import引入String类;

String类是唯一一个不需要new关键字来创建对象的类;

java没有内置的字符串类型,而是在标准java类库中提供预定义类String,即每个字符串都是String类的一个实例;

不能修改字符串中的字符;

不能使用==运算符检测两个字符串是否相等,只能确定是否在一个位置上,只有字符串常量是共享的,而+或substring等操作生成的并不是共享的;

检查空串: if(str.length == 0) 或 if (str.equals("")) , 检测nil串:  if(str == null)

 import java.util.Arrays;
class StringDemo
{
public static void main(String [] args)
{
String name1="hello world";
String name2="hello world";
String name3=new String("hello world");
String name4=new String("hello world");
System.out.println( name1==name2 );//true
System.out.println( name3==name4 );//false System.out.println("字符串的查找----------------------------------------"); System.out.println("字符串的使用!String");
System.out.println(name1.length()+":字符串的长度");
System.out.println(name1.charAt(3)+":返回指定下标的字符");
System.out.println(name1.indexOf('o')+":通过字符找到字符的下标");
System.out.println(name1.lastIndexOf('o')+":返回最后一个字符的下标"); System.out.println("字符串的判断-----------------------------------"); String s="";
System.out.println(s.isEmpty());//true 长度为0返回true 否则返回false
String fileName="Demo1.java";
System.out.println(fileName.endsWith(".java"));//判断某个是否已某个字符串结尾
System.out.println(fileName.contains("java"));//判断是否包含某个字符串
System.out.println(fileName.equals("java"));//false
System.out.println("java".equals("java"));//true
System.out.println("java".equalsIgnoreCase("JaVa"));//true忽略大小写比较 System.out.println("字符串转换---------------------------------------");
String str=new String(new char[]{'a','b','c','d','e'});
System.out.println(str); char[] charArr=str.toCharArray();//字符串装换成字符数组
System.out.println(Arrays.toString(charArr)); String strBy=new String(new byte[]{97,98,99});
System.out.println(strBy);
byte [] byteArr=strBy.getBytes();
System.out.println(Arrays.toString(byteArr));//字符串转换成byte数组 System.out.println("字符串替换---------------------------------------"); String strRe="hello world !";
System.out.println(strRe.replace("world","java"));//都会重新创建一个对象,原来的 对象不会改变 System.out.println("字符串切割---------------------------------------");
String strSpl="hello world !";
String[] strArraySpl=strSpl.split(" ");
System.out.println(Arrays.toString(strArraySpl)); System.out.println("字符串子串------------------按照指定顺序求字符串的一部分---------------------");
String strSub="hello world !";
System.out.println(strSub.substring(3));//也是产生新的字符串
System.out.println(strSub.substring(3,9));//假如超过了字符串的长度,那么用"空"表示
//System.out.println(strSub.subString(6,4))//运行时报错可以大于等于前面一个下标 System.out.println("字符串大小转换---------------------------------------");
String strUp="HELLO world";
System.out.println(strUp.toUpperCase());
System.out.println(strUp.toLowerCase()); System.out.println("字符串去除两边空格---------------------------------------");
String strTr=" hello world ! ";
System.out.println(strTr.trim()); //trim的实现 数组里面的length是属性不是方法
String strTrm=" hello world ! ";
char[] charTr=strTrm.toCharArray();
int start=0;
int end=charTr.length;
for(int i=0;i<charTr.length;i++){
if(charTr[i]==' ')
start++;
else
break;
}
for(int i=charTr.length-1;i>=0;i--)
{
if(charTr[i]==' ')
end--;
else
break;
}
System.out.println(strTr.substring(start,end+1));
} /* string 对象的创建: String name1="my";是放在内存常量区中
方式1: string对象是放在常量池中的一块内存地址
放置之前先检查该区域是否已经放有该常量,如果有,直接返回地址 方式2:String name3=new String("my");
这个是放在堆内存里面的,创建出来的对象是不相等的,因为内存地址不一样 String特点:
1、由于字符串底层是由一个字符数组来实现的,所以String是不可变的
2、String 重写了Object的hashCode方法
== 表示比较的是地址 String 常用的方法: */
}

String demo

7.输入输出

数据流: http://blog.csdn.net/hguisu/article/details/7418161

读取输入:Scanner类 (java.util.Scanner)

 public class TestScanner {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入字符串:");
while (true) {
String line = s.nextLine();
if (line.equals("exit")) break;
System.out.println(">>>" + line);
}
}
}

格式化输出:

文件输入与输出:

  java.utiil.Scanner   Scanner(File f)  构造一个从给定文件读取数据的Scanner;

               Scanner(String  data) 构造一个从给定字符串读取数据的Scanner;

  java.io.PrintWriter  PrintWriter(String filename) 构造一个将数据写入文件的PrintWriter,文件名由参数指定

8.控制流

快作用域: 一个块可以嵌套在另一个块中,但不能在嵌套的块中声明同名的变量;

public static void main(String[] args)
{
int n;
{
int k;
int n; //ERROR, can't redefine n in inner block
}
}

条件语句:

循环语句:while    ,  do.....while

确定循环:for 若在for内部定义一个变量,这个变量不能在循环体外使用

for(int i=1; i<=10;i++)
{
...
}
//i no longer defined here int i
for(i=1;i<=10;i+=)
{
...
} //i is still defined here

多重选择: switch语句

中断控制流程语句: 带标签的break语句

9.大数值

java.math包提供了类: BigInteger  和 BigDecimal,实现任意精度的整型运算和浮点型运算

10.数组

创建数组时,所有元素都初始化为0,bool类型为false,对象数组的元素为null,表示还未存放任何元素;

for each循环:   for(variable:collection) statement

数组拷贝:数组变量拷贝给另一个变量,此时两个变量将引用同一个数组;

命令行参数: java Message -h  world ,则 args[0]=  -h, args[1]= world;

多维数组:

java核心技术 要点笔记1的更多相关文章

  1. java核心技术 要点笔记2

    第4章   对象和类 1.面向对象 类:构造对象的模板,创建类的实例:由类构造对象的过程,封装,继承: 对象:对象的特性——对象的行为,对象的状态,对象的标识: 类之间的关系: 依赖(“user-a” ...

  2. java核心技术 要点笔记3

    1.类,超类和子类 2.Object:所有类的超类 3.泛型数组列表 4.对象包装器和自动装箱 5.参数数量可变的方法 6.枚举类 7.反射 8.继承设计的技巧

  3. java核心技术学习笔记之一程序设计概述

    Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...

  4. java中的自动拆装箱与缓存(Java核心技术阅读笔记)

    最近在读<深入理解java核心技术>,对于里面比较重要的知识点做一个记录! 众所周知,Java是一个面向对象的语言,而java中的基本数据类型却不是面向对象的!为了解决这个问题,Java为 ...

  5. java核心技术学习笔记之一程序设计环境

    一术语 JDK:Java Delelpment Jit JRE:Java Runtime Environment 二.安装jdk1.8.0_25 设置环境变量(建议直接安装在C盘下),使用:隔开 C: ...

  6. java核心技术卷一笔记(1)

    jdk是java开发工具包,里面包含了javac.jar.javadoc.java等工具,可以在bin目录中找到.有一个文件夹是jre,即jdk也包含了java运行环境.jre可单独安装,只是运行ja ...

  7. Java核心技术卷一 · 笔记(2)

    目录 1.多态.动态绑定 2.覆盖 3.阻止继承:final 类和方法 4.抽象类(abstract修饰) 5. 4 个访问修饰符: 6.toString() 7.对设计继承关系很有帮助的建议 8.接 ...

  8. Java核心技术卷一 · 笔记(1)

    目录 1.java的关键术语 2.==和equals 3.空串与 Null 串 4.构建字符串 5.封装 6.对象的三个主要特性 7.依赖(dependence).聚合(aggregation).继承 ...

  9. java 核心技术卷一笔记 6 .2.3 接口 lambda 表达式 内部类

    6.2.3   对象克隆 Cloneable 接口,这个接口指示一个类提供了一个安全的clone方法.(稍作了解) 为一个对象引用的变量建立副本时,原变量和副本都是同一个对象的引用,任何一个变量改变都 ...

随机推荐

  1. C# EventHandler委托事件小结--百度

    最近遇到一个委托的问题,+=这个符号 this.Activated += new EventHandler(Form1_Activated);//Form1_Activated为方法名12 这个语句拆 ...

  2. Python pandas检查数据中是否有NaN的几种方法

    Python pandas: check if any value is NaN in DataFrame # 查看每一列是否有NaN: df.isnull().any(axis=0) # 查看每一行 ...

  3. CentOS6.5 Cloud-Init使用

    使用cloud-init实现虚拟机信息管理 http://blog.marvelworld.tk/?p=575 谈谈Openstack的CentOS镜像 http://www.chenshake.co ...

  4. 洛谷P3792 由乃与大母神原型和偶像崇拜

    P3792 由乃与大母神原型和偶像崇拜 题目背景 由乃最近没事干,去研究轻拍学去了 就是一个叫做flip flappers,轻拍翻转小膜女的番 然后研究的过程中她看到了一个叫做大母神原型的东西 大母神 ...

  5. Ckeditor 4 复制粘贴截图并转化base64格式保存至数据库

    虽然Ckeditor 中自带的有上传图片和文件的功能,但是有时候我们并不需要把图片保存至服务器的文件夹中. 反而是截图复制粘贴,把图片转化为base64格式保存在数据库中即可满足要求. 1.首先下载安 ...

  6. PHP下载远程图片的几种方法总结

    1. 使用file_get_contents function dlfile($file_url, $save_to) { $content = file_get_contents($file_url ...

  7. HTTP的学习记录3--HTTPS和HTTP

    一开始我所知道的只有HTTPS比HTTP更加安全,而且很多网站,如百度谷歌之流已经都是HTTPS了,博客园也是,你可以看到上方我们链接上那个绿色的小锁和绿色的安全二字. 另外吐槽一句,绿色还真是有趣, ...

  8. JOS lab1 part2 分析

    lab1的Exercise 2就是让我们熟悉gdb的si操作,并知道BIOS的几条指令在做什么就够了,所以我们也会尽可能的去分析每一行代码. 首先进入到6.8282/lab这个目录下,输入指令make ...

  9. UVa 10652(旋转、凸包、多边形面积)

    要点 凸包显然 长方形旋转较好的处理方式就是用中点的Vector加上旋转的Vector,然后每个点都扔到凸包里 多边形面积板子求凸包面积即可 #include <cstdio> #incl ...

  10. linux shell 脚本 历史文件清理脚本,按天,按月,清理前N天的历史文件,删除指定大小历史文件,历史文件归档清理

    不知道大家那有没有要清理的这个事情.需要清理目录历史文件.可能后续也会有很多其他地方需要清理历史文件,可能会用到. 我这两天空闲写了个脚本,清理比较方便,有要进行清理的大量历史文件的话可以用. 脚本用 ...