检索目录

  • 前言
  • 正文
    • 在线编程
    • 主要特性
    • 专业术语:
    • DOS命令操作
    • 基础
    • 规范
    • 数组
    • 排序
    • 日期和时间
    • 方法
    • 方法的优点
    • 方法的命名规则
    • 方法的定义
    • 变量作用域
    • FileInputStream
    • FileOutputStream
    • 异常
    • Java 数据结构
  • Java 实例
    • Java 环境设置实例
    • Java 字符串
    • Java 数组
    • Java 时间处理
    • Java 方法
    • 打印图形
    • Java 文件操作
    • Java 目录操作
    • Java 异常处理
    • Java 数据结构
    • Java 集合
    • Java 网络实例
    • Java 线程
  • Java 测验
  • 未完待续

前言

根据最近和众多师兄,同学,以及逛学校论坛看经验,发现大家对Java的认可度都要更高一些,而且根据前段时间的刷题经验,Java要比C++更灵活路也更宽,因此决定之后主要学习Java方面的编程,刷题也变换一种常用语言,认真为之后找工作打基础。

之前本科大一的时候,也学过一段时间的js语言,html5等等,相信天下语言是一家,努力加油吧。

我自己在菜鸟学习时的记录,可以实现网页运行代码,讲的也很流畅,源网址在这里,所有内容都基于菜鸟。

正文

在线编程

在线编程实例网址。

public class HelloWorld {/* 第一个Java程序* 它将输出字符串 Hello World*/public static void main(String[] args) {  //推荐使用 String[] args,这样可以避免歧义和误读。System.out.println("Hello My World");}
}

主要特性

  • Java 语言是简单的:

    Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。

  • Java 语言是面向对象的:

    Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

  • Java语言是分布式的:

    Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

  • Java 语言是健壮的(Robost):

    Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。

  • Java语言是安全的:

    Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。

  • Java 语言是体系结构中立的:

    Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

  • Java 语言是可移植的:

    这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。

  • Java 语言是解释型的:

    如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

  • Java 是高性能的:

    与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。

  • Java 语言是多线程的:

    在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。

  • Java 语言是动态的:

    Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

专业术语:

  • JDK(Java Development Kit ):编写Java程序的程序员使用的软件
  • JRE(Java Runtime Environment):运行Java程序的用户使用的软件
  • Server JRE (Java SE Runtime Environment):服务端使用的 Java 运行环境
  • SDK(Software Development Kit):软件开发工具包,在Java中用于描述1998年~2006年之间的JDK
  • DAO(Data Access Object):数据访问接口,数据访问,顾名思义就是与数据库打交道
  • MVC(Model View Controller):模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法

DOS命令操作

1.快捷键:windows+R 呼出DOS窗口。

2.输入cmd(大小写不用区分)回车,打开DOS窗口。

常见的命令(基本都不区分大小写)

1.切换盘符: 盘符(就是电脑的C,D,E…盘) : (如 : D : )

2.查看文件或者文件夹: dir

3.进入某个文件夹: cd 文件夹名

4.返回上一级目录: cd…

5.清屏: cls

6.删除某个文件: del 文件名

7.删除某个文件夹: rd 文件夹名

8.退出DOS窗口: exit

基础

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

编写 Java 程序时,应注意以下几点:

  • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。

  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass

  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。

  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。

  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

    常用的转义字符:

    "\b" (退格)
    "\f" (换页)
    "\n" (换行)
    "\r" (回车)
    "\t" (水平制表符(到下一个tab位置))
    "\' " (单引号)
    "\" " (双引号)
    "\\" (反斜杠)
    

规范

一、命名规范

1、 项目名全部小写

2、 包名全部小写

3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。如:public class MyFirstClass{}

4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。如:

int index=0;
public void toString(){}

5、 常量名全部大写

A

如:

public static final String GAME_COLOR="RED";

6、所有命名规则必须遵循以下规则:

  • 1)、名称只能由字母、数字、下划线、$符号组成
  • 2)、不能以数字开头
  • 3)、名称不能使用JAVA中的关键字。
  • 4)、坚决不允许出现中文及拼音命名。

二、注释规范

1、类注释

在每个类前面必须加上类注释,注释模板如下:

/**
* Copyright (C), 2006-2010, ChengDu Lovo info. Co., Ltd.
* FileName: Test.java
* 类的详细说明
*
* @author 类创建者姓名
* @Date    创建日期
* @version 1.00
*/

2、属性注释

在每个属性前面必须加上属性注释,注释模板如下:

/** 提示信息 */
private String strMsg = null;

3、方法注释

在每个方法前面必须加上方法注释,注释模板如下:

/**
* 类方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @return 返回结果的说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

4、构造方法注释

在每个构造方法前面必须加上注释,注释模板如下:

/**
* 构造方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

5、方法内部注释

在方法内部使用单行或者多行注释,该注释根据实际情况添加。

如:

//背景颜色
Color bgColor = Color.RED

下面的例子展示如何访问实例变量和调用成员方法:

public class Puppy{int puppyAge;public Puppy(String name){// 这个构造器仅有一个参数:nameSystem.out.println("小狗的名字是 : " + name ); }public void setAge( int age ){puppyAge = age;}public int getAge( ){System.out.println("小狗的年龄为 : " + puppyAge ); return puppyAge;}public static void main(String[] args){/* 创建对象 */Puppy myPuppy = new Puppy( "tommy" );/* 通过方法来设定age */myPuppy.setAge( 2 );/* 调用另一个方法获取age */myPuppy.getAge( );/*你也可以像下面这样访问成员变量 */System.out.println("变量值 : " + myPuppy.puppyAge ); }
}

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。

低  ------------------------------------>  高byte,short,char—> int —> long—> float —> double

变量类型

public class Variable{static int allClicks=0;    // 类变量String str="hello world";  // 实例变量public void method(){int i =0;  // 局部变量}
}

成员变量、局部变量、静态变量的区别

成员变量 局部变量 静态变量
定义位置 在类中,方法外 方法中,或者方法的形式参数 在类中,方法外
初始化值 有默认初始化值 无,先定义,赋值后才能使用 有默认初始化值
调用方式 对象调用 对象调用,类名调用
存储位置 堆中 栈中 方法区
生命周期 与对象共存亡 与方法共存亡 与类共存亡
别名 实例变量 类变量

访问控制

修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包
public Y Y Y Y Y
protected Y Y Y Y/N(说明) N
default Y Y Y N N
private Y N N N N

final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。

final 修饰符通常和 static 修饰符一起使用来创建类常量。

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

variable x = (expression) ? value if true : value if false

条件、循环等使用都比较类似,便不再赘述。

Java 中 int 和 Integer 的区别:int 是基本数据类型,int 变量存储的是数值。Integer 是引用类型,实际是一个对象,Integer 存储的是引用对象的地址。

Math.floor 是向下取整。

Math.ceil 是向上取整。

Math.round 是四舍五入取整 但是需要注意的是:

  • 1、参数的小数点后第一位小于 5,运算结果为参数整数部分。
  • 2、参数的小数点后第一位大于 5,运算结果为参数整数部分绝对值 +1,符号(即正负)不变。
  • 3、参数的小数点后第一位等于 5,正数运算结果为整数部分 +1,负数运算结果为整数部分。

数组

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,…,number99。

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

dataType[] arrayRefVar;   // 首选的方法或dataType arrayRefVar[];  // 效果相同,但不是首选方法

数组变量的声明,和创建数组可以用一条语句完成,如下所示:

dataType[] arrayRefVar = new dataType[arraySize];

另外,你还可以使用如下的方式创建数组。

dataType[] arrayRefVar = {value0, value1, ..., valuek};

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。

该实例完整地展示了如何创建、初始化和操纵数组:

public class TestArray {public static void main(String[] args) {double[] myList = {1.9, 2.9, 3.4, 3.5};// 打印所有数组元素for (int i = 0; i < myList.length; i++) {System.out.println(myList[i] + " ");}// 计算所有元素的总和double total = 0;for (int i = 0; i < myList.length; i++) {total += myList[i];}System.out.println("Total is " + total);// 查找最大元素double max = myList[0];for (int i = 1; i < myList.length; i++) {if (myList[i] > max) max = myList[i];}System.out.println("Max is " + max);}
}

以上实例编译运行结果如下:

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

排序

冒泡排序

public class BubbleSort {/*** N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。* @param args*/public static void main(String[] args) {int arr[] = {26,15,29,66,99,88,36,77,111,1,6,8,8};for(int i=0;i < arr.length-1;i++) {//外层循环控制排序趟数for(int j=0; j< arr.length-i-1;j++) {//内层循环控制每一趟排序多少次// 把小的值交换到前面if (arr[j]>arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}System.out.print("第"+(i+1)+"次排序结果:");//列举每次排序的数据for(int a=0;a<arr.length;a++) {System.out.print(arr[a] + "\t");}System.out.println("");}System.out.println("最终排序结果:");for(int a = 0; a < arr.length;a++) {System.out.println(arr[a] + "\t");}}
}

[Hantn](javascript:

【Java】菜鸟教程个人Java学习笔记相关推荐

  1. 【C++】菜鸟教程个人C++学习笔记

    我自己在菜鸟学习时的记录,可以实现网页运行代码,讲的也很流畅,源网址在这里 检索目录 标准化 代码一闪而过的问题所在和解决方法. **标识符** 为什么要使用 **using namespace st ...

  2. 菜鸟教程C语言学习笔记1

    C语言环境-C语言常量部分已写在菜鸟教程下方 (7).C存储类 auto存储类 所有局部变量默认的存储类 只能用在函数内,即只能修饰局部变量 {int mount;auto int month; } ...

  3. 菜鸟教程C语言学习笔记2

    (9)判断 判断语句 if if-else 嵌套if switch 嵌套switch 运算符 三元运算符?: (10)循环 循环类型 while do while for循坏 嵌套循环 循环控制语句 ...

  4. Java web与web gis学习笔记(二)——百度地图API调用

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  5. Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  6. 《Java并发编程实践》学习笔记之一:基础知识

    <Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念:  (2)进程:是一种活动,它是由一个动作序列组成 ...

  7. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  8. 拉勾网《32个Java面试必考点》学习笔记之二------操作系统与网络知识

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  9. 拉勾网《32个Java面试必考点》学习笔记之一------Java职业发展路径

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  10. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

最新文章

  1. 【对讲机的那点事】玩无线电,你知道的天线有多少种?
  2. 项目视频光盘项目中所学概览-html5+批处理+bat转exe
  3. 接口练习题(书信接口)
  4. 集群中几种session同步解决方案的比较[转]
  5. 导入导出oracle数据库表的dmp文件
  6. struts2 零配置
  7. PostgreSQL最常见问题
  8. MyBatis系列-Mybatis入门精讲
  9. 嫌贫爱富,是人性,也是典型的消费心理
  10. 九、Promises
  11. 如何从服务器上取pdf文件,如何从服务器响应创建pdf文件?
  12. 【备忘】加入L2范数正则化后的正规方程求解参数推导过程
  13. 编写一个应用程序,给出汉字“你”“我”“他”在Unicode表中的位置。
  14. 看jQuery源码的技巧
  15. MQ消息队列概述及主流MQ分析
  16. android wifi分析工具,Wifi分析助手
  17. matlab 无刷电机,无刷直流电机MATLAB仿真模型
  18. Windows命令行调用windows 图片和传真查看器等
  19. struct tm 中的 tm_isdst 以及 mktime
  20. 关于ireport中文不显示问题

热门文章

  1. C#对STK11.4二次开发的Hello World
  2. 解决Specifying a namespace in include()withou providing an app_name
  3. eclipse 自动下载源码插件
  4. 最少拍控制系统设计(二)纹波问题分析与无纹波系统的设计与仿真(附matlab和simulink源文件)
  5. 网络暴利行业,天龙私服赚千万是不是梦想?
  6. 2021最新个人在线要饭网站源码
  7. 构建AD域 、 管理AD域
  8. 小火狐进化_第34章 契约小火狐
  9. 讲道理 | 三维高斯积分公式
  10. 基于OneNET物联网平台和GPRS网络继电器SAC07GSA的共享经济方案简介