[Off-topic] stephj:
The ^ operator is a logical bitwise exclusive-or (Intel's x86 'XOR' or ARM's 'eor' assembler instruction).

At a bit level, if both bits of the inputs are the same it returns 0, if they are different it returns 1. operating on a single bit, we have....

0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

This also will work across all bits of the integer. In binary 1, 2 and 3 are 01, 10, and 11 respectively.

Binary Dec Binary Dec
01 1 10 2
11 3 11 3
-- XOR -- XOR
10 2 01 1
-- --

So by taking 1 or 2, and exclusive-or(ing) it with 3, it turns into its opposite value.

It is a single line of code that replaces:

if(i==1)
i=2;
else
i=1;

or

i= (i==1) ? 2 : 1;

Back to the real problem: Your program doesn't quit when it should.

The bug in your code is that a closing brace, the one before

if(result == 1){

Should go between the two closing braces following

System.out.println("Cats Game, nobody wins.");
System.exit(0);

The code to check the win doesn't get executed.

Also the terminating condition of the main loop should be

while(result == 0 && moves != 9){

As it stands the game would have only detected a win if it occured on the last move of the nine.

While we're at it change:

if(result == 1){
//winner = true;
display(firstarray);
System.out.println(playerarray[0] + " is the winner!!!");
}else if(result == 2){
//winner = true;
display(firstarray);
System.out.println(playerarray[1] + " is the winner!!!");
}else{
System.out.print("");
}

to

if(result>0){
display(firstarray);
System.out.println(playerarray[result-1] + " is the winner!!!");
}

If there is a winner, the value of 'result' is >0 i.e. 1 or 2. reduce this by 1 to get the index of the player's name in the array. Also the number of moves modulo 2 can be used to get the index of the name of the current player.

Before

int choice = input.nextInt();

add:

System.out.print("\n" + playerarray[moves%2] +", Enter your move:");

The program now looks like:

import java.util.Scanner;

public class Main {
public static void main(String[] args){
int playerturn = 1;
boolean winner = false;
String firstarray[][]={{"1","2","3"},{"4","5","6"},{"7","8","9"}};
int secondarray[][]={{0,0,0},{0,0,0},{0,0,0}};
String playerarray[]={"",""};

int result;
int i;
result=0;
int moves=0;
int x,y;

System.out.println("Chris' Tic-Tac-Toe Game");
System.out.println();
Scanner input = new Scanner(System.in);
System.out.println("Enter Player1's name: ");
String Player1 = input.nextLine();
playerarray[0] = Player1;
System.out.println("Enter Player2's name: ");
String Player2 = input.nextLine();
playerarray[1] = Player2;
System.out.println(playerarray[0] + " is X");
System.out.println(playerarray[1] + " is O");

while(result == 0 && moves != 9){

display(firstarray);

System.out.print("\n" + playerarray[moves%2] +", Enter your move:");
int choice = input.nextInt();

if(choice>0 && choice<10)	//if choice is 1-9, continue, otherwise do else
{
choice-=1;	//choice 1-9 subtract 1 is 0-8
x=choice%3;	//x = the remainder of 'choice' / 3
y=choice/3;	//y = the whole number of 'choice' / 3

if(secondarray[y][x]!=0)	//if the cell [y][x] in secondarray doesnt = 0, choose another cell, otherwise do
System.out.println("Cell occupied, pick another");
else
{
secondarray[y][x] = playerturn;	//playerturn = secondarray[y][x] = 1 or 2
firstarray[y][x] = (playerturn==1) ? "X" : "O";	//if playerturn = 1 place an X otherwise place an O
playerturn^=3;	//switch playerturn from 1 to 2 or from 2 to 1
moves++;	//moves + 1 = moves
}
}
else
System.out.println("Number out of range.");

for(i=0;i<3;i++)
{
// Row (i) and column (i)
result |= (secondarray[i][0] & secondarray[i][1] & secondarray[i][2]) | (secondarray[0][i] & secondarray[1][i] &

secondarray[2][i]);
}
// Diagonal top left -> bottom right
result |= (secondarray[0][0] & secondarray[1][1] & secondarray[2][2]);

// Diagonal top right -> bottom left
result |= (secondarray[0][2] & secondarray[1][1] & secondarray[2][0]);

if(result>0){
display(firstarray);
System.out.println(playerarray[result-1] + " is the winner!!!");
}

if(result == 0 && moves >=9){
display(firstarray);
System.out.println("Cats Game, nobody wins.");
System.exit(0);
}
System.out.println("");
}
}

public static void display(String x[][]){
for(int row=0; row<x.length; row++){

for(int column=0; column<x[row].length; column++){

System.out.print(x[row][column]+" ");
}
System.out.println();
}
}
}