- 浏览: 2542677 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
----------------------------------第一个测试代码
<%=new java.util.Date()%>
----------------------------------print和tostring
print会自动调用对应的tostring 方法,很多类都重写了 tostring方法.
在自定义的类中也可以重写toString方法,这样print就可以按照你的要求来输出
class Point
{
public static void toString()
{
renturn "x="+x+"y="+y;
}
}
--------------------------------静态代码段
当类被访问时,静态代码段也会执行
class Point {
static
{
System.out.println("Point class");
}
}
/*
结果是:
Before Point class
Point class
after Point class
*/
--------------------------------异常
public class YiChang2
{
public static void main(String args[])
{
int a,b;
try
{
a=0;
b=5/a;
System.out.println("需要检验的程序");
}
catch(ArithmeticException e)
{
System.out.println("发生ArithmeticException异常");
}
System.out.println("结束");
}
}
--------------------------------栈内存和堆内存
1.将两个坐标点互换,不能有第三个变量
public class Test {
public static void main(String[] args) {
int x=3;
int y=4;
x=x+y;
y=x-y;
x=x-y;
System.out.println(x);
System.out.println(y);
}
}
public class Test {
public static void change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
public static void change(int[] num)
{
num[0]=num[0]+num[1];
num[1]=num[0]-num[1];
num[0]=num[0]-num[1];
}
public static void change(Point pt)
{
pt.x=pt.x+pt.y;
pt.y=pt.x-pt.y;
pt.x=pt.x-pt.y;
}
public static void main(String[] args) {
int x=3;
int y=4;
change(x,y);
System.out.println(x);
System.out.println(y);
int[] num=new int[]{3,4};
change(num);
System.out.println(num[0]);
System.out.println(num[1]);
Point pt=new Point();
pt.x=3;
pt.y=4;
change(pt);
System.out.println(pt.x);
System.out.println(pt.y);
}
}
结果为;
3
4
3
4
3
为什么第一个基本数据类型x,y结果没有发生互换?
在java中,传参时,都是以传值的方式进行的。
对于基本数据类型,传递的都是数据的拷贝,对于引用类型,传递的引用的拷贝。
2 通过引用类型来熟悉java中的栈内存和堆内存
其它的数据类型都是引用对象。比如数组,string
String s1= new String(“abc”);
String s2= new String(“abc”);
If(s1== s2)//==是表示两个对象在栈内存中的引用值是否相等,所以不相等
{
}
If(s1.equals(s2)) //==是表示两个对象在堆内存中的的值是否相等,即字符串对象,所以相等
{
}
equals 在java.lang.object,而String 类将equals方法重写了。
“当我们声明一个引用类型变量时,系统只为该变量分配了引用空间,初始的通常为null”只有通过new来生成的对象才会被保留在堆内存中
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String s1= new String("abc");
String s2= new String("abc");
String s3=s1;
s3="ccc";
System.out.println(s1);
System.out.println(s3);
}
}
//abc
ccc
----------------------------------递归
public class RecursionDemo
{
public static void main(string[] args)
{
system.out.println("writeVertical(3):");
writeVertical(3);
system.out.println("writeVertical(12):");
writeVertical(12);
system.out.println("writeVertical(324):");
writeVertical(3);
}
public static void writeVertical(int n)
{
if(n<10)
{
system.out.println(n);
}else
{
writeVertical(n/10);
system.out.println(n%10);
}
}
}
/*输出:
3
1
2
3
2
4
*/
----------------------------------数组 数组类型是引用类型
double[] score=new double[5];
score.length 等于5
-----数组初始化
int[] age={2,12,1};
_________________
int[] age= new int(3);
age[0]=2;
age[1]=12;
age[2]=1;
__________
int[] i=new int[]{1,2,3};
-----多维数组
char[][] a = new char[5][12];
int[][] myarray = new int[4][5];
for(int index1=0;index1<myarray.length;index1++)
{
for(int index2=0;index2<myarray[index1].length;index2++)
{
}
}
-----循环
public class Test {
public static void main(String[] args) {
int[] num=new int[3];
for(int i=0;i<num.length;i++)
{
System.out.println(num[i]);
}
}
}
-----数组排序
静态方法Arrays.sort
import java.util.*;
public class Test {
public static void main(String[] args)
{
int[] num1=new int[]{2,1,3};
Arrays.sort(num1);
for(int i=0;i<num1.length;i++)
{
System.out.println(num1[i]);
}
}
}
/*
结果是
1
2
3
*/
Arrays.binarySearch的前提是必须使用排序Arrays.sort
import java.util.*;
public class Test {
public static void main(String[] args)
{
int[] num1=new int[]{2,1,3};
Arrays.sort(num1);
int index=Arrays.binarySearch(num1, 3);
System.out.println("index="+index);
System.out.println(num1[index]);
}
}
double[] b = {7.7,5.5,11,3,4.4};
seletionSort.sort(b,b.length);
for(int i=0;i<b.length,i++)
{
system.out.print(b[i] + "");
}
-----java.lang.system中的arraycopy方法
arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
public class Test {
public static void main(String[] args)
{
int[] num1=new int[]{1,2,3};
int[] num2=new int[3];
System.arraycopy(num1, 0, num2, 0, num1.length);
for(int i=0;i<num2.length;i++)
{
System.out.println(num2[i]);
}
}
}
对象数组:
Point.java
class Point {
int x;
int y;
Point(int x,int y)
{
this.x=x;
this.y=y;
}
}
Test.java
class Test {
public static void main(String[] args)
{
Point[] pt=new Point[]{new Point(1,1),new Point(2,2),new Point(3,3)};
Point[] pt2=new Point[3];
System.arraycopy(pt, 0, pt2, 0, pt.length);
for(int i=0;i<pt2.length;i++)
{
System.out.println(pt2[i].x+"+"+pt2[i].y);
}
}
}
Test.java
class Test {
public static void main(String[] args)
{
Point[] pt=new Point[]{new Point(1,1),new Point(2,2),new Point(3,3)};
Point[] pt2=new Point[3];
System.arraycopy(pt, 0, pt2, 0, pt.length);
pt2[1].x=5;
pt2[1].y=5;
for(int i=0;i<pt2.length;i++)
{
System.out.println(pt2[i].x+"+"+pt2[i].y);
}
}
}
/*
结果是:
1+1
5+5
3+3
*/
数组的内存分配图
数组的相关操作
--------------------------------------将两个坐标点互换,不能有第三个变量 传值分为基本数据类型传值和引用类型传值
public class Test {
public static void main(String[] args) {
int x=3;
int y=4;
x=x+y;
y=x-y;
x=x-y;
System.out.println(x);
System.out.println(y);
}
}
public class Test {
public static void change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
public static void change(int[] num)
{
num[0]=num[0]+num[1];
num[1]=num[0]-num[1];
num[0]=num[0]-num[1];
}
public static void change(Point pt)
{
pt.x=pt.x+pt.y;
pt.y=pt.x-pt.y;
pt.x=pt.x-pt.y;
}
public static void main(String[] args) {
int x=3;
int y=4;
change(x,y);
System.out.println(x);
System.out.println(y);
int[] num=new int[]{3,4};
change(num);
System.out.println(num[0]);
System.out.println(num[1]);
Point pt=new Point();
pt.x=3;
pt.y=4;
change(pt);
System.out.println(pt.x);
System.out.println(pt.y);
}
}
结果为;
3
4
3
4
3
为什么第一个基本数据类型x,y结果没有发生互换?
在java中,传参时,都是以传值的方式进行的。
对于基本数据类型,传递的都是数据的拷贝,对于引用类型,传递的引用的拷贝。
发表评论
-
eclipse 导出jar第三方jar包 问题
2009-11-03 18:16 3504修改导出以后的jar中的 MANIFEST.MF Mani ... -
java+xfire(web service) + php 客户端 并实现文件加密
2009-11-03 18:13 3371http://lixinye0123.iteye. ... -
Spring 基础和入门:Struts2+Spring整合
2009-09-24 14:17 1818http://www.tudou.com/programs/v ... -
Hibernate基础和入门:新建表和插入表
2009-09-23 18:17 1508http://www.youku.com/playlist_s ... -
Tomcat Web Server Administration Tool + 连接池连接问题
2009-09-21 11:12 3649附 apache-tomcat-5.5.28-admin.zi ... -
JSP的标准动作元素 + JSTL + EL
2009-09-16 11:40 1965附 JSTL标准标签库.rar 下载 < ... -
netbean + swing
2009-09-15 17:14 3036入门推荐 http://java.sun.com/docs ... -
java 线程和进程
2009-09-12 13:31 1713一个进程中肯定,至少有一个线程。 ... -
java OOP
2009-09-12 13:20 1229本WORD附下载 对象知识点.rar 面向 ... -
servlet /jsp
2009-09-12 11:25 2204html(doPost/doGet)--->servle ... -
eclipse java web 配置
2009-09-11 13:25 9678------------------------------ ... -
【转】一个Java程序员应该掌握的10项技能
2009-06-18 18:46 14931、语法:必须比较熟悉 ...
相关推荐
该思维导图包括Java基础知识:Java提供的常见类、接口、内部类、抽象类、集合系统、异常体系、IO流、线程等基础知识。适用于Java初学者,做知识复习。
下面将详细介绍从给定文档中提取的Java基础知识。 **内存与Java** 内存是计算机中用于存储数据和程序的部件,分为随机存取存储器(RAM)和只读存储器(ROM)。RAM是易失性存储器,用于存储临时数据和程序,而ROM...
1. **Java基础**:Java的基础语法包括变量、数据类型、运算符、流程控制(如if语句、switch语句、循环结构for、while、do-while)以及异常处理。理解这些基础知识是学习Java的第一步。 2. **面向对象**:Java是一种...
Java 基础知识点汇总 以下是 Java 基础知识点汇总的详细说明: ### 1. 面向对象的特征 面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它强调使用对象和类来组织和结构化代码。面向对象编程的...
jdk,eclipse使用,循环,数组,基础API,面向对象,循环,运算符,关键字,String详解,IO流
经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案...
### Java基础知识汇总 #### 1. 概念与提纲 Java是一种广泛使用的高级编程语言,同时也代表了一个软件平台。其核心特色在于“一次编写,到处运行”(Write Once, Run Anywhere, WORA),这得益于Java虚拟机(JVM)的...
在计算机科学的世界里,Java技术作为一种高级的面向对象编程语言,不仅提供了一种编程...通过学习和掌握Java基础知识,开发者能够更好地编写出结构清晰、逻辑严谨、易于维护的代码,从而在软件开发领域中占据一席之地。
传智播客的“Java基础知识汇总”提供了全面的学习资源,涵盖了从入门到进阶的诸多核心概念。以下是对这些文件中可能包含的知识点的详细解释: 1. **day01-java开发前奏.doc**:这个文档可能介绍了Java开发环境的...
### Java基础语法汇总 本文将基于给定的文件信息,对Java的基础语法进行一次全面而深入的解析。Java作为一种广泛使用的编程语言,在软件开发、Web应用、移动应用等多个领域都有着重要的地位。对于初学者而言,掌握...
《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...
java基础知识汇总1
"Java基础名词解释汇总" Java基础名词解释汇总面向对象程序设计(Object-Oriented Programming)是指java基础名词解释汇总的主要内容。面向对象程序设计是指一种起源于六十年代,开展已经将近三十年的程序设计思想...
这份"Java基础教学汇总最新2018"是专为初学者设计的教育资源,特别适合正在学习编程的大学生和高中生。这份教程可能包括了Java语言的基础概念、语法特性、面向对象编程原理以及实际编程实践等内容。 首先,Java基础...
Java基础班讲义从多个方面系统地介绍了Java语言的基本知识,涵盖了Java的发展历史、开发环境的搭建、基本数据类型的使用、以及如何编写和执行Java程序。接下来,我们将详细解析这部分内容。 首先,Java的发展历史...
Java学习资料汇总涵盖了从基础到高级的各个层面,包括了Java的核心概念、语法特性、类库应用以及开发工具的使用等内容。这里我们将深入探讨Java语言的关键知识点。 首先,Java的基础部分涉及变量、数据类型、运算符...
【Java学习基础汇总】 在Java学习的初期,掌握基本的环境配置和数据库操作是至关重要的。以下是一些关于Java与数据库交互的关键知识点: 1. **导入JDBC驱动**: 在Java项目中,我们需要JDBC驱动来连接数据库。在...
该ximind文档为Java基础知识汇总,包括Java基本分类、Java的变量、Java的运算符、Java常用的工具介绍、流程控制语句、数据、面向对象等知识总结。
这份"Java基础知识汇总"文档无疑为初学者和有经验的开发者提供了一个全面的学习资源,旨在帮助他们理解和掌握Java的核心概念。 首先,Java的基础知识包括了语法结构。Java是一种面向对象的语言,它的语法与C++相似...