第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. ProtoBuf练习(六)

    JSON类型 工程目录结构 $ ls proto/ proto文件 $ cat proto/style.proto syntax = "proto3"; import " ...

  2. 《算法竞赛进阶指南》1.4Hash

    137. 雪花雪花雪花 有N片雪花,每片雪花由六个角组成,每个角都有长度. 第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,-,ai,6. 因为雪花的形状是封闭的环形,所以从任何一 ...

  3. Orthanc+OHIF DICOM Viewer最佳Dicom解析、在线浏览实践指南(解决方案)

    概念 DICOM identifiers Very importantly, the DICOM standard specifies DICOM tags that allow to index e ...

  4. EOS 用户权限相关命令

    首先,环境相关的配置请参考https://www.cnblogs.com/hbright/p/9266420.html 在这里,我们一起看年EOS权限相关的东东.我们先查看hml这个用户的相关信息 h ...

  5. 2019南昌邀请赛网络赛:J distance on the tree

    1000ms 262144K   DSM(Data Structure Master) once learned about tree when he was preparing for NOIP(N ...

  6. Swift几行代码解决UITableView空数据视图问题

    tableView空数据问题 一般项目中tableView若数据为空时会有一个提示示意图 为了更好的管理这种提示示意图,笔者利用extension进行了简单的拓展 解决思路 利用swift面向协议的特 ...

  7. putty提示Network error:Software caused connection abort

    在 sshd host 的 /etc/ssh/sshd_config 设定: TCPKeepAlive yes,和将LoginGraceTime的值设为0,默认为2m,然后使用service sshd ...

  8. 练习十八:求这样的一组数据和,s=a+aa+aaa+aaaa+aa...a,其中a为一个数字

    例如:2+22+222+2222+22222(此时共有5个数字相加),这里具体几个数字由键盘控制 方法一:普通做法 a = int(input("计算要加的数(1-9之间数):") ...

  9. jquery——制作置顶菜单

    置顶菜单: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. 非关系型数据库---Memcached

    一.概述 1.Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载: 2.Memcached通过 在内存中缓存对象和数据 来减少读取数据库的次数,从而提升网站的 ...