第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. .NET 中文件嵌套,例如:cshtml文件下面嵌套css和js【机器翻译】

    越来越多的我发现自己在我的一些较大的Web项目中丢失了文件.有很多内容要处理 - HTML视图,几个派生CSS页面,页面级CSS,脚本库,应用程序范围的脚本和页面特定的脚本文件等等.幸运的是,我使用R ...

  2. 菜鸟眼中的”AppSettings和ConnectionStrings“

    前言 这次的机房收费系统重构,我们用到了这个配置文件.瞬间感觉高大上了许多,对新鲜的事务就是又陌生又好奇,通过看静静的博客,还有自己查资料花了点时间弄了弄,下面是我整理的结果. 内容 是什么 AppS ...

  3. 洛谷P1047 校门外的树

    P1047 校门外的树 题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0 ...

  4. 根据T-Code查看用户出口的代码

    在此非常非常感谢源作者,这段代码真的非常非常有用好用! REPORT  YLBTEST. TABLES :  tstc,     "SAP Transaction Codes(SAP 事务代 ...

  5. bootstrap table 学习记录

    效果: html代码: <!-- 工具容器 --> <div id="toolbar" class="btn-group"> <b ...

  6. MySQL服务器与MySQL57服务器区别与不同处在哪里,他们各自的领域范围,能不能同时启动服务?

    安装了MySQL-5.7.18.0版本数据库,版本中包含了MySQL Workbench可视化试图工具,在服务列表栏中会有MySQL的两个服务器:如果启动第一项MySQL服务器就只能操作数据库,外界不 ...

  7. JS如何在本地读取json等文件

    JS使用ajax等在本地读取文件的时候,会报如下的错误: 解决方法一: npm install http-server -g  全局安装 http-server 下载完成之后再在目标文件中cmd中输入 ...

  8. LeetCode 260 Single Number III 数组中除了两个数外,其他的数都出现了两次,找出这两个只出现一次的数

    Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...

  9. 牛客网训练赛26D(xor)

    题目链接:https://www.nowcoder.com/acm/contest/180/D 线性基的学习:https://www.cnblogs.com/vb4896/p/6149022.html ...

  10. HDU 6153 A Secret 套路,求解前缀在本串中出现的次数

    http://acm.hdu.edu.cn/showproblem.php?pid=6153 首先相当于翻转两个串,然后求s2前缀在s1中出现的次数. 这是一个套路啦 首先把两个串结合起来,中间加一个 ...